KERMIT-20 Change History (in reverse chronological order) ------------------------ * Future Releases: There's not much left to do. A few standouts are: . File attribute support. . REMOTE RUN command (both ends). . REMOTE KERMIT command (both ends). . REMOTE HOST command. . Provide data-link level support for applications other than file transfer. * Changes from 4.1(236) to 4.2(251), 18 Oct 84: . Add INPUT, OUTPUT, TRANSMIT, PAUSE, CLEAR, and ECHO commands. . Fix bugs: - SERVER command was overruling SET parameters, now it doesn't. - ^C out of REMOTE HOST didn't work, now it does. - Sometimes got spurious "?Too long" message for REMOTE CWD password. - ^C out of LOCAL type was not allowed, now it is. - LOCAL RUN would let inferior Exec log out, now it doesn't. * Changes from 4(224) to 4.1(236), 17 Jul 84: . Add code to do terminal connection, drop use of TTLINK. . Always uppercase incoming filenames. . Fix a few minor problems with XON/XOFF. * Changes from 4(222) to 4(224), 26 Jun 84: . Allow specification of alternate destination file name in GET. . Allow !;@? and other characters to be included in remote filespec in GET. . Fix bugs in disabling and restoring refuse/accept links/advice. * Changes from 4(215) to 4(222), 29 May 84: . Fix FILE NAMING NORMAL-FORM (it was broken in the previous release). . Change SET DEBUGGING LOG to LOG DEBUGGING, like other KERMITs. . Don't create empty debugging log files. . Add SET FLOW-CONTROL to allow explicit enable/disable of XON/XOFF. . Add SET EXPUNGE to allow enable/disable of automatic expunge on DELETE. . Fix problem with two consecutive ~ chars in data when doing compression. . Make LOCAL prefix optional on LOCAL commands like LOCAL DELETE, etc. . Add LOCAL TYPE, LOCAL RUN. . Change LOCAL/REMOTE DISK to LOCAL/REMOTE SPACE, like other KERMITs. . Add code to believe remote TTY line speed under TOPS-20 6.0. . Miscellaneous minor bugs fixed. * Changes from 3.3(140) to 4(215), 12 April 1984: . REMOTE command to send new commands to a remote server: DISK-USAGE, CWD, TYPE, DIRECTORY, DELETE, HELP, HOST for management of remote files. . Server service for the REMOTE commands (except HOST). . 2- and 3-character block checks (the latter is a 16-bit CRC-CCITT). . Session logging facility for remote connections (LOG SESSION). . Transaction logging facility to provide an "audit trail" of an unattended file transfer (LOG TRANSACTIONS). . SET PROMPT command. . ARPANET TVT binary mode negotiations. . Don't assign or open TTY line if own controlling terminal; this prevents a server job that lost carrier and became detached from tying up a port on the DEC-20 (except still must open a TVT). . Better conversion for incoming and outbound file names. . Detection and handling of carrier loss on dialup connections. . Many bug fixes, speedups, cleanups, robustness improvements. . New documentation. * Changes from 3C(133) to 3.3(140): . Change version number typeout to use decimal notation (3.3 instead of 3C). . Repeat count processing for data compression. . SEND single-local-file (AS) name-on-target-system * Changes from 3B(127) to 3C(133) (13 Dec 83): . Add support for 8th-bit-prefixing to allow 8-bit binary data to be sent through 7-bit communication links, such as over TELENET, or to an IBM mainframe, triggered automatically by use of character parity. . Upon any timeout, clear the XOFF status of the line and also transmit an XON. This should take care of deadlocks that occur when an XOFF is spontaneously generated on a noisy line. * Changes from 3A(66) to 3B(127), 2 Dec 83: MAJOR DIFFERENCES: 1. File i/o completely rewritten to prepare for future addition of new server commands. 2. DEFINE command added for definition of SET macros, for instance: DEFINE IBM (to be) PARITY MARK, DUPLEX HALF SHOW MACROS shows the current macro definitions. 3. TAKE command to allow commands to be taken from a file. 4. Automatic TAKE of KERMIT.INI upon startup. KERMIT.INI can contain DEFINE commands for the various systems you would be communicating with. 5. Interruption of file transfer in both local and remote mode: In local mode, typing ^X interrupts the current file and skips to the next, typing ^Y skips the rest of the batch. These always work when sending files (except that the receiver may still keep the partial transmitted file, and work for receiving files only if the sender understands the interrupt request. In remote mode, KERMIT-20 responds to interrupt requests. 6. Separate remote and local mode top-level command tables. Since most users of KERMIT-20 use it only in remote mode, they will no longer be confused by commands like "FINISH" and "BYE". 7. ITS binary files are now handled. 8. Help text for SET command broken up, so you can say "help set escape", etc. MINOR IMPROVEMENTS AND CHANGES: . In local mode, ^A may be typed for a report on the file transfer in progress. . Server operations may now be recorded in the debugging log. . Don't parse for initial filespec in SEND if source file not wild. . SET ABORTED-FILE renamed to SET INCOMPLETE. . Minor improvements to statistics display. . Allow ^C to interrupt a stuck BYE or FINISH command. . Server accepts "I" packets. . SET HANDSHAKE allows specification of line turnaround character. . Change SET FILE-BYTE-SIZE to SET FILE BYTESIZE. . Add SET FILE NAMING to elect filename conversion. BUG FIXES: . Mod 64 packet number compares fixed. . NAK bad packet immediately, don't wait for timeout. . Various bugs fixed relating to ^C trap, exiting and continuing, etc. . Proceed gracefully after file i/o errors. . Correctly assess the file byte size when sending in server mode. . Release TTY and file JFNs in some places where they weren't before. . Don't truncate error message in error packet prematurely. . Fix SHOW ALL command not to say "DEL" at end. . Make sure init file is taken before processing command line argument. . Fix command line arguments to work even if no init file. . Make sure line is set up correctly after exit and continue. . Don't send 4 extra characters if file is ITS binary. The following features or fixes are new to KERMIT-20 since the May 5 distribution: [33] "Abort" correctly if output file can't be opened, e.g. because of invalid simultaneous access. Previously, KERMIT-20 would jump into the wrong code if this happened. [34] Send padding if requested. [35] SET RECEIVE PAUSE lets the user specify a pause between receipt of a packet and sending the ACK or NAK. The pause is given in (floating point) seconds. This keeps packets from flying into the DEC-20 front end too fast. Default is no pause. [36] SET SEND PAUSE, like SET RECEIVE PAUSE, but specifies the interval to wait before sending a packet when sending a file. This is useful if KERMIT-20 is sending to a system that can't keep up. Default is no pausing. [37] SET RETRY {INITIAL-CONNECTION | PACKETS} lets the user change the previously hardwired maximum retries for the send-init packet and for ordinary packets. [38] SET DEBUG LOG-FILE allows either terse (state change) or verbose (packets) debugging to be sent to an arbitrary file, so that a remote KERMIT-20 can be debugged. [39] Change STATUS command to STATISTICS, which is what it really is. Allow optional arguments to SHOW command, like SHOW LINE, etc. Print herald with program version on startup. [40] Some internal fixups, mostly making sure error packets are formed correctly. [41] SET DEBUG LOG-FILE filespec (BYTESIZE) n (BITS) You can make n either 7 or 8. Use 8 to debug binary file transfers. Of course, you need some special tool, like FILDDT, to look at the result. Also, force debugging to STATES (the default debugging mode) if SET DEBUG LOG is issued when debugging is OFF. [42] When receiving a file, make sure Kermit-20 sends an error packet every time it "aborts". Add SET ABORTED-FILE (DISPOSITION) DISCARD/KEEP command to allow keeping of partially transferred files. [43] If the other side puts a space (which translates to a 0) in the timeout field of its Send-Init, then do as the book says and don't do timeouts. This is probably wrong, since a space means to take the default action, but this is still better than setting a timer for 0, which is what was happening. [44] When sending a file, after getting a timeout when waiting for ACK to file header packet, don't give up next time thru the SFILE routine when OPENF fails with "file already open" -- just ignore that error & proceed. [45] Fix SHOW command for timing info. [46] Clear input buffer after timeout; this might alleviate problems on systems whose back end buffers filled up. Ensure that when receiving, Kermit-20 never "aborts" unless it exceeds MAXTRY for a packet (in which case it always sends an error packet), or it can't send a packet at all (SPACK fails). Previously, there some cases where it would give up too quickly. [47] Fix bad checksum reporting (again), make it briefer. Include most recent JSYS error in STAT command. Make SET SEND (any packet parameter) take precedence over any packet parameters provided by the other side in its ACK to the Send-Init. [48] In one of the recent edits, the instruction setting up the pointer to the data field of the Send-Init packet for SPAR was lost, which caused utter chaos. Now it's back.