File KERMIT.BWR MS-DOS KERMIT 3.0 "BEWARE FILE" January 1990 Last update: Wed Jan 10 18:51:05 1990 This file lists limitations, restrictions, and known bugs in MS-DOS Kermit version 3.0. Also see KERMIT.UPD for a list of new features of version 3.0 and incompatibilities with older releases. The user manual for MS-DOS Kermit 3.0 is "Using MS-DOS Kermit", by Christine M. Gianone, published by Digital Press, Bedford, MA, 1990, order number EY-C204E-DP. Call 1-800-343-8321 (toll free, USA) to order. The technical reference by Professor Joe R. Doupnik is in preparation. LIMITATIONS AND RESTRICTIONS OF MS-DOS KERMIT On IBM PCs and PS/2s with IBM asynchronous adapters, Kermit can be used at speeds up to 57600 bps. For 115200 bps to work, a very short shielded cable is required, and the async adapters of the two machines must be in perfect tune. It's an electrical affair, not one of programming. MS-DOS Kermit does not attempt to monitor the communication line for carrier loss during terminal emulation or file transfer (but you can SHOW MODEM or SHOW COMMUNICATIONS to inquire about CD, DSR, and CTS). The absence of carrier monitoring is a design decision. Interactive users will notice when carrier drops, and timeouts will catch the situation during file transfer or script execution. The script command WAIT permits sensing carrier presence while doing scripts or macros. The benefits are not having to wire a direct RS-232 connection to simulate a modem's carrier being present, and being able to talk to the local modem before carrier is detected from the other modem. MS-DOS Kermit will not necessarily work with all brands of internal modems, particularly some of the built-in ones that come with laptop PCs from various makers. If you cannot communicate satisfactorily through such a modem, give the command SET PORT BIOSx (where x is 1, 2, 3, or 4, corresponding to whether the modem is COM1, COM2, COM3, or COM4) and try again. Kermit does work with most popular brands of internal modem (such as the Hayes Smartmodem 1200B and 2400B), and with all known external modems, both direct-connect and acoustic. Kermit does not work properly with revision C of the built-in modem in the Toshiba T1600 laptop computer, due to an idiosyncracy of this modem. The symptom is that the connection drops when you escape back from connect mode, at which point Kermit turns off interrupts. The modem misinterprets this as a command to hang up the phone and turn itself off. Revision F of this modem does not have this problem. Note: This problem occurs with the "built-in" modem, not the "internal" modem (these are two different devices). The IBM PC implementation of VT300/100 emulation has several restrictions: no smooth scroll, no ENQ/Answerback, no setup screen (use SET TERMINAL commands instead), no split speeds. Double height/width characters are simulated. In addition, the VT320/340 emulator lacks the following functions of the corresponding real terminals: . Down loadable soft fonts . ReGis graphics (VT340/330) . Dual sessions in split screens (VT340/330) . Local screen editing and block transmission (for security reasons) . Answerback (also for security reasons) . Selective erasure (as a character attribute, a formatted screen item) . And many of the exotic and rarely known features of the DEC VT340/330 series: mostly formatted screen and graphics operations highly specialized to DEC hardware. When you type the escape character (normally Ctrl-]) while in Tektronix graphics mode, the screen goes back to text memory. Then when you type the argument character, the graphics screen reappears (unless the argument was C or P). This causes your graphics screen image to be lost if your adapter doesn't have enough display memory. Furthermore, Ctrl-]F will not file the graphics screen, but rather the text screen, because that's the screen that's showing after type the Ctrl-] key. To file the graphics screen (in TIFF format), use Ctrl-End (which has the Kermit verb \Kdump assigned to it by default). In VT100/300 emulation on the IBM family, receipt of the ESC [ 4 m (turn on underscore) command results in reverse video rather than underscore on IBM CGA, EGA and other color monitors. This was done to avoid showing underscoring as the IBM specification of non-bold blue on black. SET DEST DISK does not redirect output of REMOTE commands to disk -- they come to the screen, by design. Use the ">" output redirection symbol for this, for example: "remote dir > files.dir". It can be very difficult sometimes to interrupt execution of a script from the keyboard by typing Ctrl-C. Particularly scripts with INPUT commands that have long timeouts, within loops, etc. If you think your script needs to be manually interrupted at critical points, you can use the following trick: SET ALARM 3 ECHO Type something now if you want to quit...\13 PAUSE 3 IF NOT ALARM STOP This works because PAUSE is interruptable by any keyboard input. MS-DOS Kermit must be assembled with MASM (Microsoft Assembler) 4.0 or later (and linked with the accompanying LINK), because the symbol tables are too big for earlier MASM versions. Reportedly, the program can also be built using Borland TASM (although several harmless warning messages appear) and TLINK, but MS-DOS Kermit is designed to be assembled by MASM. On early (original motherboard & BIOS) PCs, and on systems that mimic them (e.g. early Compaqs), the cursor may assume a strange shape upon return from CONNECT mode. This is caused by a bug in the early BIOS, which stored cursor attributes incorrectly. The PC Tech Journal article discussing the problem is "The Dashed Cursor", by Paul Pierce, PC Tech J., Dec. 1985, page 47. He suggests the following fix: ; ; Program FIXCURS.ASM by Paul Pierce, PC Tech Journal, Dec 1985, page 47. ; code segment public 'code' assume cs:code, ds:code, es:nothing ; ; This program is set up to be made into a COM file ; org 100H ; ; First check for the monochrome adapter. ; start: int 11H ; set ax = equipment flag and al,30H ; mask off all but video bits cmp al,30H ; test for monochrome adapter jne exit ; jump if not monochrome ; ; Now check for incorrect cursor mode returned from the Bios ; mov ah,3 ; call bios to get cursor type int 10H ; cmp cx,0607H ; check for invalid (color) type jne exit ; jump if not a bad value ; ; At this point we know that the monochrome adapter is in use and that ; the bios cursor mode is incorrect. ; Call the bios to set the cursor type correctly. ; mov cx,080cH ; use correct cursor type mov ah,1 ; call bios to set cursor type int 10H exit: mov ah,0 ; exit back to DOS int 21H code ends end start GENERAL WORDS ON DOS VERSUS ANY COMMUNICATIONS PROGRAM Shift-Printscreen can cause the PC to hang if there is no attached printer. This is a BIOS feature, Kermit never receives the command. It occurs most frequently with a printer interface that has nothing plugged into it. If this happens during terminal emulation, try pressing Alt-= several times to reset the terminal. When used in remote mode, e.g. as a server, a REMOTE HOST command can invoke the DOS critical error handler, which issues its familiar "Abort, Ignore, Retry?" message on its real screen, and is waiting for a response from its own real keyboard, and so the server will no longer respond. Kermit attempts to catch many of these errors before DOS learns learns about them, but some cannot be avoided (like disk i/o errors). Interaction between MS-DOS Kermit and various terminate-and-stay-resident (TSR) programs is necessarily unpredictable, depending upon how "well behaved" they are. Certain console, mouse, or graphics drivers might interfere with file transfer, etc. Caution should be used when invoking certain TSR programs while PUSHed from Kermit (e.g. using the PRINT command for the first time), as not all of these programs observe proper etiquette for allocating and freeing memory, and more importantly the TSRs will be loaded above Kermit into the middle of memory where they may prevent large programs from loading later. As a concrete example of the above, certain mouse drivers may prevent Kermit from transferring files, and possibly also from recovering from timeouts during script execution, or even from XOFF deadlocks during terminal emulation. This is because Kermit and the mouse driver are competing for the same interrupt, and the mouse driver might not be playing by the rules. Possible workarounds include: (1) remove the mouse driver from your CONFIG.SYS file; (2) if your mouse driver can be turned off and on (e.g. if you have MOUSE OFF and MOUSE ON commands), turn the mouse off during Kermit execution; (3) give the MS-DOS Kermit command SET TIMER OFF. KNOWN BUGS IN MS-DOS KERMIT VERSION 3.0 Beta test If a file is sent to the PC, and MS-DOS Kermit has SET FILE WARNING OFF (meaning, overwrite existing files when incoming files arrive with the same name), and the sender reports the file size in an Attribute packet, and this size is larger than the available disk space on the PC, then MS-DOS Kermit will properly refuse the file, but will also destroy any previously existing file of the same name. MS-DOS Kermit refuses to receive a file in binary mode (SET FILE TYPE BINARY) from IBM mainframe Kermit because of a misunderstanding over the format of the file type attribute in the Attribute packet. SET ATTRIBUTES TYPE OFF does not cure the problem, but SET ATTRIBUTES OFF will allow these files to be transferred correctly (but in this case you MUST give the command SET FILE TYPE BINARY to MS-DOS Kermit as well as to IBM mainframe Kermit). [Fixed in Beta-7.] Incorrect output from Kermit when sending the position of the Tektronix crosshair cursor. [Fixed in Beta-7.] Reportedly, the program hangs after escaping back from CONNECT mode under PC-DOS 4.0 (further reports from users of DOS 4.0 or later would be appreciated - please specify exact DOS version number and symptoms. Send in reports even if it works correctly). The Encoding attribute by default comes out incorrectly as *"CA, rather than *!A, which might confuse some Kermit receivers or servers. Workaround: if you are sending text files and using the default transfer character-set (which is TRANSPARENT), then SET ATTRIBUTES OFF when sending, or else SET TRANSFER CHARACTER-SET LATIN1. MS-DOS Kermit's maximum packet length is 2000, and the program is able to receive 2000-byte packets from certain systems (like UNIX) with no problem. However, 2000-byte packets sent by VM/CMS Kermit on a linemode connection do not seem to arrive properly. The maximum length in this case seems to be about 1700. In general, it is best to use packet lengths of 1000 or less. Reportedly, REMOTE TYPE sometimes (not always) results in an error "Unable to open CON". Reportedly, MS-DOS Kermit 3.0 sometimes loses certain terminal settings, such as WRAP or tab settings. This might be caused by Kermit's new ability to accept VT300 8-bit control sequences when connected to a system that sends parity. Try SET PARITY EVEN, or whatever. This will prevent Kermit from misinterpreting control characters with parity bits as VT300 8-bit control sequences. Reportedly, the 3COM BAPI network interface does not work at all. End of file KERMIT.BWR.