MSKERMIT.BWR -- Known Bugs and Limitations, MS-DOS Kermit Version 2.28 As of: 9:08am Tuesday, 9 July 1985 PLANS: - Our intention is to integrate MS-DOS Kermit with C-Kermit. When that is done, most of the bugs and limitations related to protocol and command parsing should disappear. The plan is to write ckdtio and ckdfio (d for DOS) modules to supply the system-dependent functions, and to keep the current assembly language terminal emulation code so as not to sacrifice the good i/o performance (interrupt driven), H19 emulation, screen rollback, key redefinition, printer control, and other features that we have now. A preliminary version (except for the terminal emulation) is already working in Lattice C. No estimate as to actual release date. - A fairly complete VT102 (ANSI) console driver has been written in C by someone who intends to submit it (lawyers willing) to be included in the Kermit distribution, for use with MS-DOS Kermit on the IBM PC family. This console driver will largely remove the need for (and objections to) the H19 emulation that is built into the Kermit program. A working example of a resident console driver should also be of some help to the many people who have wanted emulation for other kinds of terminals -- Dasher, HP2621, etc -- built into Kermit; it should be a simple matter to change the escape codes in this console driver to match those of other terminals, without having to bother the Kermit program at all. - Version 2.28, as released in early June 1985, had several serious problems. These are documented below, labeled as "will be fixed in the next release". Version 2.28A will be released as soon as these bugs are fixed. There will then be a hiatus in MS-DOS Kermit development while we work on other projects. BUGS: - Version 2.28 does not run under pre-2.0 versions of DOS, but it doesn't warn you if you try to do this. A warning will be issued in the next release. - When GET command is used to send a wildcard file specification to a server, the incoming files have their names truncated. Patch: Change 1 -- (original msfile.asm) jne gofil4 ; No - get the filename. ; this bogusity copies the filename from the fcb into the data (modified msfile.asm) jne gofi4a ; No - get the filename. ; this bogusity copies the filename from the fcb into the data Change 2 -- (original msfile.asm) cmp flags.destflg,0 ; writing to printer? jne gofil5 ; no, go on (modified msfile.asm) gofi4a: cmp flags.destflg,0 ; writing to printer? jne gofil5 ; no, go on This will be installed in the next release. - MS-Kermit version 2.28 generated its "Unable to create file" error message whenever you try to get a file with default destination set to printer. The problem was a malformed printer "file name" in msfile.asm. The following "fc" output illustrates how to change msfile to make it work correctly: ----------(original)msfile.asm printer db 0,'PRN ' spchar db 24H,26H,23H,40H,21H,25H,27H,28H,29H,2DH ----------(new)msfile.asm printer db 'PRN',0 spchar db 24H,26H,23H,40H,21H,25H,27H,28H,29H,2DH This fix will be installed in the next release. - When assembling or linking from source, some assembler/linker combinations will reorder the segments, even though MSDMB.ASM specifies the desired order. Typical symptom -- system hangs after escaping back from connect. Short-term workaround: don't build from source -- create the .EXE file from the .BOO file provided. Next release will have a more foolproof method of specifying the order of the segments. This problem seems to surface most often when IBM MASM version 2.0 is used, which takes it upon itself to put the stack segment where Kermit does not expect it to be. If you must work from source, best to use old assemblers and linkers. If you only have IBM MASM 2.0, you should be able to work around the problem by using the /S switch, or by renaming the stack segment to ATACK so it will be first alphabetically... - Since MS-Kermit now does dynamic memory allocation, you may sometimes get "not enough memory" messages. This can happen if your PC's memory became too fragmented, or if too much memory is allocated to other entities like print spoolers/buffers, RAM disks, etc. Even if you succeed in running Kermit, you can create a situation in which you can't run it again -- for instance: run Kermit, PUSH to DOS, install some kind of resident program like a print spooler, EXIT from DOS back to Kermit, exit from Kermit. You'll find that you can't start Kermit again. - When running as a server, MS-DOS Kermit reportedly sends garbage instead of the filename in the file header packet. This problem will be investigated and if it's really happening, will be fixed in the next release. Meanwhile, better avoid using 2.28 as a server (2.27 still works). - On IBM PC family, Heath-19 emulation incorrectly ignores CRLF received when cursor at column 80, resulting in bad interaction with "vi" editor. This will be fixed in the next release. - On the IBM PC/AT, terminal emulation is very slow if EGA card is present (also a problem in earlier releases). This will be fixed in next release. Until this is fixed, EGA users can patch the routine SCRWAIT in MSYIBM to just return. (What about the Professional Graphics card? Same deal?) - LOG filespec -- if filespec contains a path, then logging makes disk A spin, even if default disk is E. Furthermore, log file never shows up anywhere on either A or current or specified disk. - Reportedly, there are STILL some problems with SET EOF CTRLZ -- some junk is still transmitted after the ^Z is encountered (several repititions from the previous packet). - Multiline GET command, local file specification -- may contain a device specification, but not without a file name (the RECEIVE command allows a device only). Also, if you include a path in the local name for GET, the "\" characters will be translated into X's (if it doesn't allow path names it should just say so). - "C?" to command parser lists all commands, not just those that start with C. LIMITATIONS: - Stripping out of DOS 1.1 support not fully complete. Files are still represented internally with FCB's; you still can't use a path name in the SEND, RECEIVE, GET, or LOG commands, ... This is especially confusing since users told that they can't use paths in filespecs because of DOS 1.1 compatibility, yet the program no longer runs under DOS 1.1... And also because they CAN include paths in TAKE and RUN commands. - Server operation should provide some additional services -- directory listings, cwd, delete, type, etc. Also, there should be a way to specify whether the server's screen should be left alone (e.g. for background operation) or should show the file transfer display. - RUN should look for the extensions .COM, .EXE, .BAT if no extension is given. - Occasional snow on IBM color screen, e.g. when typing the escape character during CONNECT. - There should be a way to restore all original settings, short of restarting the program. - HOME/END on PC and shift-next-screen on the Rainbow should just jump to the end of the viewing window without scrolling everything past on the screen. - The H19 25th line should be supported for a status line when used with the Series/1 and other 3270 protocol emulators. - Rainbow next/previous screen should know how to handle double width and double height. - SET INCOMPLETE KEEP doesn't work correctly if the transfer is ^C'd. - No way to reassign the BREAK and screen scrolling keys; need to have something like SET KEY FUNCTION {break|upscreen|downscreen|...}. It would also be nice to allow CONNECT escape-command functions (like Close Connection, Status, etc) to be assigned to function keys. - It would be nice if the keyboard redefinitions worked at Kermit command level as well as during CONNECT. - On systems with multiple serial ports, saved screens should be kept on a per-port basis.