MSKERMIT.DOC 23-Aug-85 Differences Between IBM-PC Kermit-MS v2.27 and v2.27-11 DEC, TOPS, and VT are trademarks of Digital Equipment Corporation. IBM is a trademark of International Business Machines Corporation. MS is a trademark of Microsoft Corporation. KERMIT is a trademark of Henson Associates, Inc. It is used by Columbia University (by permission) as a name for the software described here. KERMIT is not to be sold. It is distributed by: Columbia University Center for Computing Activities 612 West 115th Street New York, NY 10025 The copyright to the KERMIT software described belongs to the Trustees of Columbia University in the City of New York. Page 1 This document describes changes to Kermit for MS-DOS on the IBM-PC. The modifications were made to Kermit-MS version 2.27, distributed by Columbia University and received by IUPUI in January 1985. The modified version is described as version 2.27-11 and is available at IUPUI. The sources for the modified version will be sent to Columbia University so that the modifications may be incorporated into the next version of Kermit-MS released by Columbia. Version 2.27-11 is only available in the IBM-PC version. This version should run under PC-DOS or MS-DOS on any machine that is reasonably software and hardware compatible with the PC (i.e., machine will run MS-DOS, the BIOS looks (to the user) the same as the IBM-PC BIOS, the interface to the communications port(s) (hardware register functions and addresses) is similar, and the screen interface (hardware registers and addresses, and mapping of the screen memory) is the same. This version of Kermit-MS has been tested using the following hardware and operating systems: o An IBM PC XT with a monochrome monitor, running IBM PC-DOS version 2.10. o An IBM PC AT with a color monitor and an IBM color graphics adaptor, running IBM PC-DOS version 3.0. o A Zenith Z-100 PC with a color monitor (using Zenith's adaptor), running MS-DOS version 2.0. The new Kermit-MS VT100 emulator was tested using the following (mainframe) fullscreen programs: 1.0 o IBM's XEDIT fullscreen editor, and also various fullscreen utilities running on an IBM 4341 under CMS. This system (at IUPUI) drives asynchronous terminals using an IBM 7171 protocol converter. o The SED fullscreen editor, version 1.2(530), running on a DEC-2060 under TOPS-20 version 5.1. o The EDT fullscreen editor, version 1(34), running on a DEC-2060 under TOPS-20 version 5.1. Also used with VAX-11 EDT version 3.0 on a VAX-11/780 running VMS version 4.1. NEW FEATURES New features provided by Kermit-MS version 2.27-11 include: o A screen-saver feature has been added. This feature may only be turned on if Kermit-MS is running under PC-DOS version 2.0 or greater. The screen-saver is enabled with the command: Page 2 SET SCREEN-SAVER ON It is disabled with the command: SET SCREEN-SAVER OFF When the screen-saver feature is enabled, if no characters are received from either the keyboard or the host for ten minutes, the display will be blanked. If any characters are subsequently received from the host or the keyboard, the screen will be restored (note that if the screen is restored because of keyboard input, that character is not sent to the host). o A VT100 terminal emulator has been added. The SET HEATH-19 ON/OFF command has been removed. The SET TERMINAL-EMULATION terminal-type command has been added to replace it. Valid terminal types are: (1) TTY (the original generic terminal emulator), (2) HEATH-19 (equivalent to the old HEATH-19 emulator), and (3) the new one, VT100. For example, to use the VT100 emulator, give the following command to Kermit-MS: SET TERMINAL-EMULATION VT100 Details concerning the VT100 emulator are described in the next few subsections. 1.1 VT100 Emulator Restrictions And Unimplemented Features The VT100 terminal emulator provides a complete VT100 emulation, with the following exceptions: 1. There is no setup option (these are set up for the emulator using the SET VT100 command) for VT52 compatibility mode (a real VT100 has a setup option to turn this on and off). An application program may set and reset this mode with the proper escape sequences however, and pressing Alt-"-" while CONNECTed will toggle between ANSI and VT52-compatible mode. 2. Some of the display-hardware features of the VT100 are not provided, including 132 column mode, double-width double-height lines, and smooth scroll. 3. No SETUP mode is available. VT100 setups are done using the SET VT100 command (see below) in Kermit-MS command mode. 4. Hardware-dependent setups for the VT100, like selectable 50 60 Hz. power frequency, interlace - no interlace, etc., are not provided for obvious reasons. Page 3 All other features of the VT100 are emulated according to the specifications in "VT100 User Guide", DEC document number EK-VT100-UG-002, 2nd Edition, January 1979. 1.2 Kermit-MS Commands Affected By The VT100 Emulator The output from the STATUS command has been extended to list the VT100 setup information if the current TERMINAL-EMULATION type is VT100. This information includes the following on/off setups: o ANSI-NEWLINE-MODE: If ON, the terminal sends a carriage-return followed by a line-feed when the RETURN key is pressed, and a line-feed received from the host causes the cursor to return to the left margin in addition to the line-feed function. If OFF, the terminal sends only a carriage-return when the RETURN key is pressed, and a line-feed received from the host does not cause the cursor to return to the left margin. The default is OFF, which is expected by most DEC and IBM timesharing hosts. o CURSOR-STYLE: If BLOCK, the cursor appears as a blinking solid block. If UNDERLINE, the cursor appears as a blinking underline. The default is UNDERLINE, as this is what most users expect to see on a PC. The cursor in Kermit command mode always appears as a blinking underline. o DEFAULT-CHARACTER-SET: If UK-ASCII, the ASCII character 43 (octal) is displayed as an English pound sign. If US-ASCII, the character is displayed as an American pound sign. The default is US-ASCII. o KEYCLICK: If ON, the PC speaker clicks when keyboard input is detected. If OFF, the speaker does not click. Since the stock PC keyboard clicks anyway, the speaker is pretty hard to hear, but some find the feature useful for listening to the auto-repeat when using the cursor keys. The default is OFF. o LINE-WRAPAROUND: If ON, and a printing character is received from the host when the cursor is at the rightmost column of the screen, the cursor will "wrap" to the first position on the next line (possibly causing a scroll up) and the character received will be displayed there. If OFF, such a character is displayed at the current cursor position, and the cursor does not "wrap". The default is OFF, which is the default expected by most DEC and IBM operating systems, and most full-screen application programs. o MARGIN-BELL: If ON, the PC speaker beeps when the cursor is caused (by the typist, not by characters received from the host) to move past column 72. If OFF, the speaker does not not beep if this condition is detected. The default is OFF. Page 4 o SCREEN-BACKGROUND: If REVERSE, the terminal emulator screen background is light (green on a IBM monochrome monitor, off-white on a color monitor when using the color graphics adaptor), and the displayed characters are dark. If NORMAL, the screen background is dark and the displayed characters are light. The default is NORMAL. Note that this setup does not affect the display when in Kermit command mode. Because of "flashing" effect of the IBM-PC color card scroll, NORMAL is recommended if you are using the color card interface. (The flashing is "required" by restrictions made on screen memory access by the hardware implementation. Some PC-clones, such as the Zenith Z-100, do not suffer from this defect, regardless of the scrolling software used.) The on/off setups are set and cleared using the SET VT100 command (and the keywords described above). For example, to set the screen background to reverse-video, use the following Kermit-MS command: SET VT100 SCREEN-BACKGROUND REVERSE The VT100 emulator also has settable tab stops. These are set and cleared with the following new Kermit-MS commands: SET VT100 TAB-STOPS AT n1, n2, ... n SET VT100 TAB-STOPS CLEAR AT n1, n2,... n SET VT100 TAB-STOPS CLEAR ALL where the Ns are the column numbers for tab stops (1-80). Note that the STATUS command displays the VT100 tab stops. The tab stop at column 80 is never displayed. (The VT100 never advances past column 80 upon receipt of a tab anyway, and the emulator doesn't either. Tabs never cause a VT100 (or the emulator) to "wrap", regardless of whether LINE-WRAPAROUND is ON or OFF.) 1.3 VT100 Special "Graphics" Character Set The special "graphics" character set for the VT100 is emulated, with some small changes due to the character set available on the IBM PC. This set is different from the US and UK sets for the characters 137-176 (octal). The following table gives the octal code received from the host, a description of the graphic used on the VT100, and the decimal code for the graphic used by the emulator (when the selected character set is the special "graphics" set). Codes for which the graphic (meaning the symbol) displayed by the emulator is different than (perhaps entirely unrelated to) the graphic displayed by a real VT100 are noted with "(n/a)". Page 5 Octal Code 137 140 141 142 143 144 145 146 147 150 151 152 153 154 155 156 157 160 161 162 163 164 165 166 167 170 171 172 173 174 175 176 1.4 VT100 Description IBM PC Display Code Blank Diamond Checkerboard (error ind.) H/T symbol F/F symbol C/R symbol L/F symbol Degree symbol Plus/minus N/L symbol V/T symbol Lower-right corner Upper-right corner Upper-left corner Lower-left corner Crossing lines Horizontal line - Scan 1 Horizontal line - Scan 3 Horizontal line - Scan 5 Horizontal line - Scan 7 Horizontal line - Scan 9 Left "T" Right "T" Bottom "T" Top "T" Vertical bar Less than or equal to Greater than or equal to Pi Not equal to UK pound sign Centered dot 32 4 177 26 23 27 25 248 241 21 18 217 191 218 192 197 196 196 196 196 196 195 180 193 194 179 243 242 227 157 156 250 (n/a) (n/a) (n/a) (n/a) (n/a) (n/a) (n/a) (n/a) (n/a) (n/a) (n/a) VT100 Keypad Emulation By default, the following IBM PC keys generate VT100 key sequences as described in the table below. These defaults may be changed using Kermit's SET KEY SCAN command. Cursor Keys: IBM PC Key VT100 Key VT100 Sequence with Cursor Key Mode: Reset: Set: up-arrow down-arrow up-arrow down-arrow ESC [ A ESC [ B ESC O A ESC O B right-arrow left-arrow right-arrow left-arrow ESC [ C ESC [ D ESC O C ESC O D Page 6 Simulated Application Keypad: IBM PC Key VT100 Key VT100 Sequence with Keypad Mode: Numeric: Application: F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 shift/F1 shift/F2 shift/F3 shift/F4 shift/F5 shift/F6 shift/F7 shift/F8 PF1 PF2 PF3 PF4 keypad-"7" keypad-"8" keypad-"9" keypad-"-" keypad-"4" keypad-"5" keypad-"6" keypad-"," keypad-"1" keypad-"2" keypad-"3" keypad-ENTER keypad-"0" keypad-"." ESC O P ESC O Q ESC O R ESC O S (none) (none) (none) (none) (none) (none) (none) (none) (none) (none) (none) (none) (none) (none) ESC ESC ESC ESC ESC ESC ESC ESC ESC ESC ESC ESC ESC ESC ESC ESC ESC ESC O O O O O O O O O O O O O O O O O O P Q R S w x y m t u v l q r s M p n Note that the application keypad sequences are only generated when the application has set the keypad mode to "application" (this is the way a real VT100 behaves). Also, the sequences generated by arrow keys are different depending on whether cursor keys mode is set or reset, as on a real VT100. Third, if the VT100 emulator is in VT52 compatibility mode, the corresponding VT52 sequences are generated (as described in "VT100 User's Guide", pp 38-39). Note also that the SET KEY SCAN command may be used to override these default sequences if desired. 1.5 Other Minor Features The four VT100 LEDs are simulated with "happy faces" (IPM PC display code 2) on the Kermit mode line. The "LED simulation" is not active unless the mode line is enabled and the emulator is in ANSI mode (i.e., VT100 mode as opposed to VT52 compatibility mode, see below). The VT100 emulator may be reset by pressing Alt-"=" (i.e., hold down the Alt key and press the equals-sign key). This function is similar to pressing the RESET key on a real VT100. All settable modes are reset to the current defaults and the screen is cleared. Note that if you use SET KEY SCAN to redefine Alt-"=", there will be no way to reset the emulator without either (1) doing it under program control (with the sequence ESC c) or (2) by forcing the reinitialization by changing terminal types or exiting and re-running Kermit-MS. The VT100 emulator has a VT52 compatibility mode. There is no SET VT100 command to control the default for this (the emulator is always initialized to ANSI mode immediately after the first CONNECT), but the Page 7 current mode may be toggled while CONNECTed by pressing Alt-"-". If the mode line is enabled, "[VT52]" is displayed on the mode line (instead of the "LED simulation") while the emulator is in VT52 compatibility mode. 2.0 BUG FIXES Several minor bugs in the Kermit-MS command scanner have been fixed. A few minor new features have been added also. A short description of changes users might want to be aware of are listed below: o If the user has selected the generic "dumb-terminal" emulator (SET TERMINAL-EMULATION TTY), the mode line is never displayed, regardless of whether or not it is enabled. This restriction has been made because DOS (used directly for the "dumb terminal" emulator) scrolls all 25 lines on the screen, and the presence of a mode line in reverse video would cause DOS to scroll in reverse video lines after it reached the bottom of the screen (it would also scroll the mode line up the screen). The 25th line is still never saved with the rest of the screen during terminal emulation. In general, it would probably be best to avoid using the "generic" terminal emulator. o If a user attempts to enter a command longer than 120 characters, Kermit-MS will display the error message "Command is too long for internal buffer" and ignore the command. Earlier versions of Kermit-MS would overwrite memory past the end of an internal buffer, causing a variety of problems. o If junk is typed when a confirm is expected, Kermit-MS will display the error message "Not confirmed" and ignore the command. Earlier versions would ignore the command without giving an error message (for most commands). o Comments (starting with a semicolon and continuing to the end of the line) are now allowed when command input is being gotten from the keyboard, as well as in TAKE files. Comments that stand alone on a line must be terminated with a carriage-return (i.e. not line-feed or form-feed). Comments in TAKE files are now properly displayed (TAKE files are not echoed to the terminal unless SET TAKE-ECHO ON is in effect). o Several intra-line editing bugs have been fixed. The cursor now erases to the beginning of a tab when a tab is deleted. CTRL/W now only deletes at most one tab or space to the right of a word before deleting the word (as it does in COMND-style command scanners on TOPS-20). The delete character and delete word functions also now delete past a line-wraparound. A new intra-line editing command, CTRL/R (retype line) has been added. o Several problems with echoing and keyboard input have been corrected. Control characters are now echoed using the corresponding IBM PC display graphic. Previous versions of Page 8 Kermit-MS would echo a control-character as a space when it was entered, and as the IBM PC display graphic if the command was retyped for any reason (such as using "?" for help). Extended keyboard input codes (the function keys for example) are now ignored on input, with the exception of the DEL key, which is converted to backspace. o 3.0 If the help character "?" is typed during the entering of a keyword, and only one keyword in the list of possible keywords matches, Kermit-MS will now display the full keyword only as a list of possible choices (as do COMND-style command scanners on TOPS-20). Previous versions would display the help for the next atom expected in the parse for this case. Also, an obscure problem related to using "?" with keyword input which could cause the PC to lock up has been corrected. RESTRICTIONS The new commands in which commas may be used to separate atoms in the command (i.e., SET VT100 TAB-STOPS) may not be used in a command macro definition (DEFINE command), nor may they be given on the DOS command line that is used to run Kermit-MS. This is because commas are used to separate individual commands in command macros (and on the DOS command line). A null command containing only a comment must be terminated by a carriage return (line-feeds and form-feeds result in the error message: "Invalid command"). 4.0 KNOWN BUGS None.