MUSIC Kermit 4.3.x "Beware File" - Known Bugs, Problems, Limitations. As of: 14:25 Friday, 1997 Jun 13 This file contains (A) instructions for applying Kermit updates, (B) a list of unresolved problems, (C) a list of problems with work-arounds or optional fixes, and (D) a list of resolved problems. NOTE: entries will sometimes be entered under (D) even though the needed updates have not been released in IKMKER.UPD. Please check the date of the UPD and NUP files to see if they have been changed before requesting new copies. Bug reports may be sent to John Chandler . Kermit-370 carries an "edit" number in addition to the version and release numbers. The three numbers together are printed out in the assembly listing and displayed by Kermit at startup time. Be sure to include all three numbers (e.g., 4.3.0) along with any error reports. A) Update instructions ................................................. Many updates have been received since Kermit-370 4.2 was released. All updates prior to 93/9/30 have been removed from IKMKER.UPD and applied to the sources in the process of creating 4.3. If your source does not include the line defining &KVRSN to be 4.3, you should obtain an all-new source distribution from Columbia. Any updates created later than your source should be applied before you make the executable module. In general, updates received at Columbia will not be included in the source files in the MUSIC Kermit distribution until and unless "major" bugs are uncovered, and then all accumulated updates will be applied at once. The description of each problem and a pointer to its solution will always be included in IKMKER.BWR (the present file), but the updates themselves are to be found in IKMKER.UPD. The procedure to update your copy of MUSIC Kermit is as follows: 1) Obtain the latest version of IKMKER.UPD, which contains all the updates, each preceded by a separator beginning "./ * :READ" and giving the update's name. Please note that some modes of file transport have a side effect of either doubling or removing any periods in the first column -- if your copy of IKMKER.UPD has records beginning with "/", then all instances of "/" in column 1 should be changed to "./". Similarly, any instances of ".." in columns 1-2 should be changed to just ".". A related problem can affect the sources by leaving a blank in column 80. That can happen via the loss of a "." in column 1 (in which case the sequence number will be shifted into columns 72-79) or via automated efforts to preserve the "." (in which case the sequence number will be truncated). The repair consists of inserting the missing "." in column 1 or "0" in column 80. If you are installing a beta-test Kermit, you also need the latest IKMKER.NUP, which contains all the new updates. Any local or optional updates must be gathered in a file called KERMIT.LOCAL. 2) Determine the date of your sources. If you received them from a secondary supplier, you will need to examine the source code to determine the most recent update applied. Just sort the combined source by columns 67-71: the last line will be labelled with the last-applied update. Although the current official sources for the generic and MUSIC-specific parts of Kermit were released at the same time, it may be necessary in the future to determine the dates separately for the two types of source code (IKM*.ASM vs. IK0*.ASM). 3) If your sources predate all the updates in IKMKER.UPD, i.e., if they are "pure" Columbia 4.3, go on to step 4. Otherwise, go through the list of updates at the beginning of IKMKER.UPD and note which ones are already included in (i.e., are older than) your sources. MUSIC- specific ones are marked as such, in case your generic and MUSIC parts have different dates. Disable each such redundant update by deleting the update from the update file. 4) Use the procedure IKMINS from the installation guide to install Kermit. ------------------------------------------------------------------------ B) Unresolved problems ................................................. ---------------- 89/1/15 ----------------------------------------------- MUSIC-Kermit cannot execute arbitrary host commands. ---------------- 89/1/20 ----------------------------------------------- Now that Kermit-370 supports multiple-filespec SEND, it is possible for a single SEND subcommand to specify overlapping wildcard filespecs. Only the CMS variant keeps track and makes sure that it doesn't send the same file twice within one send invocation. The others, including MUSIC Kermit-370, may send the same file again, and it is left to the user to prevent filename-collision problems on the receiving end. ---------------- 90/5/8 ------------------------------------------------ With a few exceptions, CONTROLLER will be set automatically when Kermit is invoked. See file IK0AAA.HLP in the Kermit distribution for a list of front ends that have been reported to allow Kermit file transfers and another list of reported failures. ---------------- 93/8/24 ----------------------------------------------- There appears to be a bug in MUSIC 2.4, either in the assembler or in the macro library, such that it cannot assemble the current release of Kermit (and presumably other programs as well). MUSIC 3.1 seems ok. ------------------------------------------------------------------------ C) Problems with workarounds or optional fixes ......................... ---------------- 89/2/27 ----------------------------------------------- The code for detecting the difference between SERIES1- and GRAPHICS-type terminal controllers may cause peculiar error messages at session startup, particularly if you try to run Kermit on an IBM 3270-type terminal. For example, you might see a PROG470 or PROG729 error. Normally, Kermit can recover from these error conditions, but some configurations and/or versions of VTAM may hang the terminal session instead. If you cannot get Kermit-MUSIC to start up successfully, you might want to bypass the code (especially if you don't have any GRAPHICS-type terminals). The code is governed by a set of switches which can be tailored to your needs: STCQBIT EQU X'01' WSF Query is always allowed STCQNS1 EQU X'02' WSF Q implies *not* SERIES1 STCS1 EQU X'04' Always assume SERIES1 STCNOS1 EQU X'08' Always assume *not* SERIES1 STCNORD EQU X'10' Asynch READ MOD is forbidden Since there is apparently no way for a program running under MUSIC to determine whether a WSF Query is allowed, Kermit-MUSIC must assume that it is. Therefore, the standard flag value is STCQBIT; if you wish to force the code to select SERIES1, you should change that to STCS1, as in the following: ./ * SC9131X - Customize controller type selection ./ R 01151200 $ 1151200 100 11/21/91 00:16:50 &CONOPTS SETC 'STCS1' SETCON options @SC9131X Alternatively, if you have *only* GRAPHICS-type controllers, you could change it to STCNOS1 (or STCNOS1+STCQBIT if you also have 3174 AEA controllers). Note: prior to version 4.2.2 of Kermit-MUSIC, the SERIES1 option was "wired" in for all fullscreen sessions. See the entry of 91/8/19 in part D for further notes. ---------------- 90/7/5 ------------------------------------------------ Kermit-370 now honors the file type specification (binary or text) given by a sending Kermit in an Attribute packet. Old procedures for sending binary files may therefore not work properly anymore. To return to the old mode of operation, issue the subcommand SET ATTR TYPE OFF. To live with the new mode, be sure to issue the SET FILE TYPE to both sending and receiving Kermits (to be safe). ---------------- 90/7/30 ----------------------------------------------- When the file type is TEXT and the recfm is F, Kermit-370 strips off trailing blanks from each record before sending a file. In order to keep trailing blanks in a downloaded file, you can convert it to RECFM V before sending it. ---------------- 90/8/22 ----------------------------------------------- If, for some reason, the other Kermit insists on pretending ASCII bytes all have the 8th bit set, Kermit-370 will not detect the intended CRLF separators between lines. The result of uploading from such a Kermit is a (text) file with only one record. If the other Kermit cannot be fixed, the following update will make Kermit-370 treat ASCII 8D and 8A the same as 0D and 0A, as long as the ATOE table does so. ./ * SC90151 - Forgive 7-bit ASCII files with 8th bit on ./ I 02490500 $ 2490700 200 08/03/90 16:06:46 ISW78 DC X'7F' Start with 7-bit ASCII @SC90151 ./ I 02713500 $ 2713700 200 08/03/90 16:06:46 SW78 DS X'7F' Switch for 7-bit/8-bit ASCII @SC90151 ./ I 03347500 $ 3347700 200 08/03/90 ->4.3<- KCALL TBLCRLF Note current treatment @SC90151 ./ I 03350500 $ 3350700 200 08/03/90 ->4.3<- KCALL TBLCRLF Note current treatment @SC90151 ./ I 04016000 $ 4016200 200 08/03/90 ->4.3<- KCALL TBLCRLF Reset 7-bit/8-bit mask for CRLF @SC90151 ./ I 04063000 $ 4063040 40 08/03/90 ->4.3<- * * Entry: nothing special @SC90151 * Exit: SW78 set up correctly @SC90151 TBLCRLF ENTER ALT @SC90151 MVI SW78,255 Assume 8-bit codes @SC90151 CLC ATOE+ALF(1),ATOE+ALF+128 @SC90151 BNE RTRN0 @SC90151 CLC ATOE+CR(1),ATOE+CR+128 @SC90151 BNE RTRN0 @SC90151 MVI SW78,127 No, 7-bit codes @SC90151 B RTRN0 @SC90151 ./ I 08391000 $ 8391200 200 08/03/90 ->4.3<- NC CUR,SW78 If 7-bit ASCII, ignore 8th bit @SC90151 ---------------- 91/11/21 ---------------------------------------------- In order to change the default Kanji encoding from IBM-style to another, add one of the following updates. ./ * SC9132X - Change Kanji default ./ R 01416000 $ 1416000 10 11/21/91 ->4.3<- &KNJDEF SETC 'HITACHI' Default Kanji @SC9132X ./ * SC9132X - Change Kanji default ./ R 01416000 $ 1416000 10 11/21/91 ->4.3<- &KNJDEF SETC 'FUJITSU' Default Kanji @SC9132X ---------------- 92/4/10 ----------------------------------------------- The minimum size of strings to be subjected to run-length encoding may need to be changed to two to make the new FULLSCREEN mode work on certain protocol converters, such as the MICOM 7400, which convert three successive blanks into cursor motion commands (or even two!). The following update accomplishes that. ./ * SC92101 - Encode multiple blanks ./ I 08296500 $ 8296550 50 04/10/92 ->4.3<- CLI 0(8),ABL Is it a blank? @SC92101 BNE ENCRP1 No, use normal criterion @SC92101 C 14,F2 @SC92101 BNL ENCRP2 Always encode multiple blanks @SC92101 ENCRP1 DS 0H @SC92101 ./ I 08297500 $ 8297700 200 04/10/92 ->4.3<- ENCRP2 DS 0H @SC92101 ---------------- 92/4/6 ------------------------------------------------ The time of day associated with a disk file was introduced in MUSIC/SP in version 2.1. For prior releases, the following update is needed to avoid undefined symbols. See also the note below dated 94/9/21 with update SC94263. ./ * SC92127 - Compatibility with pre-2.1 MUSIC ./ D 01034500 ./ R 01044500 $ 1044500 200 MFXIDT DS AL4 Dummy time of day (pre-2.1 MUSIC) @SC92127 ./ D 05423500 ---------------- 92/10/18 ---------------------------------------------- When Kanji characters are first selected, the default for the single- byte character set is CP290 (hard-coded in Kermit-370). That can be changed, however: ./ * SC92252 - Make CP281 the default SBCS with KANJI ./ R 04118000 $ 4118000 100 10/18/91 ->4.3<- TBVJP DC CL(LALF)'CP281',CL(LALF)'CP500',CL(LALF)'CP290' @SC92252 ---------------- 94/9/21 ----------------------------------------------- The new long userids were introduced in MUSIC/SP in version 2.4, and part of Kermit's support for the longer file names is incompatible with MUSIC 2.3. However, it is possible to retro-fit to version 2.3 with the following update. See also the note above dated 92/4/6 with update SC92127. ./ * SC94263 - Retrofit for MUSIC 2.3 (MUSIC) ./ R 00997000 $ 997000 300 09/21/94 15:53:29 LFCODE EQU 4 @SC94263 ./ R 01033000 $ 1033000 500 08/26/93 13:03:01 MFARG XNAME=0,INFIN=0,INFOUT=0,ARG=0 @SC94263 ./ D 01038500 08/26/93 13:03:01 ./ I 01177000 $ 1177300 300 09/22/94 15:24:42 $USERID EQU $USRCDE Use old location @SC94263 $OWNL EQU F4+3 Length is always 4 @SC94263 ./ R 05422000 $ 5422000 500 08/27/93 12:44:16 MFARG XNAME=MFNAME,INFIN=ZINFIN @SC94263 ./ R 06317400 06317500 $ 6317400 100 09/22/94 09:44:47 LA 0,MFUIFC Code for file (blank padded) @SC94263 LA 1,4 Length of field @SC94263 ---------------- 94/10/20 ---------------------------------------------- The DIR and TYPE subcommands, as well as and the emulated MUSIC LIST, LIBRARY, COPY, PURGE, and RENAME commands, do not permit backwards- relative target names, i.e., those using ".." as a directory component, even though Kermit does permit such names in the CWD subcommand and the emulated MUSIC CD command. ---------------- 94/12/20 ---------------------------------------------- The GUPI command, used for installing Kermit, can also be used for applying updates to other software. Version 1.3, as distributed with Kermit, however, does not include support for long user ids or file names (see the note under D below dated 93/8/25). The following update may be used to add that support, thereby creating GUPI 1.3X. If this update is stored in the Kermit directory as IKMGUP.UPD when Kermit is installed, and if there is no GUPI executable (called GUPI.LMOD), the normal installation procedure will bootstrap GUPI to level 1.3X. ./ * GUPI - SC93236 - Support long userid's and file names (MUSIC) ./ R 00917000 $ 917000 500 08/26/93 13:03:01 LH 9,DESTL Length of string @SC93236 ./ R 00997000 $ 997000 300 08/24/93 16:50:09 LFCODE EQU 16 @SC93236 LFID EQU 64 Max length of filespec @SC93236 FABFN DS CL(LFID) MUSIC filename & code @SC93236 ./ R 01025000 01027000 $ 1025000 1000 08/24/93 16:50:09 UCODE DS CL(LFID) User code @SC93236 SCODE DS CL20 SEARCH CODE @SC93236 FCODE DS CL16 CODE LOCATED BY MFINDX @SC93236 ./ R 01033000 $ 1033000 500 08/26/93 13:03:01 MFARG XNAME=0,INFIN=0,INFOUT=0,ARG=0 @SC93236 ./ R 01038000 $ 1038000 500 08/26/93 13:03:01 MFNAME MFVAR XNAME,PRE=MF,PICT=Y @SC93236 ./ R 01057000 $ 1057000 500 08/27/93 12:44:16 DESTL DS H Non-zero if CWD set. @SC93236 ./ R 01059000 01060000 $ 1059000 1000 08/24/93 16:50:09 NXFN DS CL(LFID) Pattern filespec @SC93236 LCFN DS CL(LFID) Located filename @SC93236 ./ I 01066000 $ 1066500 500 10/07/94 23:49:07 NXFNWL DS H Length of string to last wildcard @SC93236 ./ D 01100000 01101000 09/01/93 16:15:53 ./ D 01111000 08/24/93 16:50:09 ./ R 01148090 $ 1148090 10 10/12/94 13:31:34 &CWDERRM SETC 'Must be a valid MUSIC path name' @SC93236 ./ D 01157000 08/24/93 16:50:09 ./ D 10014000 10/14/94 17:28:11 ./ R 10039000 $ 10039000 500 10/14/94 18:15:27 WTEXT 'MUSIC-GUPI Version 1.3X' @SC93236 ./ R 10058000 $ 10058000 500 10/14/94 18:33:13 PTEXT 'Filename too long.',AREG=8,LREG=9 @SC93236 ./ R 10063000 $ 10063000 500 10/14/94 18:33:13 CH 1,=Y(LFID-1) Maximum name length... @SC93236 ./ R 10126000 $ 10126000 500 10/14/94 17:28:11 DSKERR LA 2,FABFN-FABD(,1) @SC93236 ./ R 10305000 $ 10305000 500 08/27/93 12:44:16 MFARG XNAME=MFNAME,INFIN=ZINFIN @SC93236 MFARG INFOUT=ZINFOUT,ARG=ZARG @SC93236 ./ R 10309000 $ 10309000 500 10/14/94 17:28:11 MFNAME MFVAR XNAME,PRE=MF @SC93236 ./ R 10316000 $ 10316000 500 10/14/94 17:28:11 ZINFDEF DC F'256',F'-100',F'-1',H'80',X'0400',X'0000C0C0' @SC93236 ------------------------------------------------------------------------ D) Resolved problems ................................................... ---------------- 90/5/8 ------------------------------------------------ A commonly reported "problem" is that Kermit-MUSIC objects to a send packet size greater than 94, and users wonder how to turn on long-packet protocol for downloads. The answer is that the the maximum packet size in Kermit protocol is always dictated by the receiving Kermit -- ALWAYS. NOTHING YOU CAN SAY TO A SENDING KERMIT WILL EVER MAKE IT SEND PACKETS LONGER THAN THE RECEIVING KERMIT ASKS FOR. Conversely, Kermit-MUSIC will always use packets as long as possible unless frequent transmission errors indicate a noisy communication line. The only purpose for the send packet-size parameter in Kermit-MUSIC is to set the default, in case the receiving Kermit is badly crippled (in which case, long packets are entirely out of the question anyway), or to control "raw" downloads (those without Kermit protocol and parameter negotiation). ---------------- 90/6/22 ----------------------------------------------- Kermit-370 supports file transfers through the IBM 3174 AEA with B2 or higher configuration. The support is restricted to terminal types defined in the 3174 to have ASCII Graphics capability. That capability is available by default only for VT241 and Tektronix 4205 terminals, but user-defined terminal types are also possible. Also, the Graphics capability is allowed only for lines defined without associated Host Addressible Printers. Kermit-370 now automatically detects the B2 AEA and sets CONTROLLER accordingly (to AEA if Graphics is allowed, to NONE if not). However, if the 3174 is owned by VTAM, and the connection is made with a logmode that forbids the Read Partition Query (such as M2SDLCNQ), Kermit cannot detect the AEA and will default to CONTROLLER GRAPHICS (and, incidentally, cannot transfer files even with CONTROLLER set to AEA by hand). M2SDLCQ is known to allow correct operation, but other logmodes have not been tested. Since the 3174 supports full 8-bit communication, it may be useful to configure the ports for 8-bit data and to set both SEND and RECEIVE PARITY to NONE in Kermit-370. The fix: SC90173. ---------------- 93/8/25 ----------------------------------------------- Kermit-MUSIC now supports file directories (which appeared in MUSIC 2.3) and userids longer than four bytes (which appeared in MUSIC 2.4). This results in a number of related changes in Kermit operation: [1] Kermit starts up in the current directory (and echoes the path name briefly before displaying the normal greetings), [2] Kermit now displays the new path name whenever it executes a successful CWD, [3] the MUSIC CD command is emulated by Kermit, and [4] the DIR subcommand (like the emulated MUSIC LIBRARY command) recognizes subdirectories much as the LIBRARY command in MUSIC. Note: when Kermit quits, it leaves the user in the then-current directory. The fix: SC93236 in IKMKER.UPD. ---------------- 94/3/15 ----------------------------------------------- Kermit-370 now sends an explicit NAK packet when it receives a bad data packet, instead of resending the previous ACK (which is nominally the same thing in Kermit protocol). This way, there are no needless timeouts when dealing with a zealous sliding-windows Kermit. The fix: SC94074 in IKMKER.UPD. ---------------- 94/6/23 ----------------------------------------------- Kermit-370 honors a new protocol feature known as "WHATAMI". Thus, when Kermit-370 is in server mode, the user can issue a SET FILE TYPE to the local Kermit and have it take effect in the server as well. The local Kermit obviously must also support WHATAMI. The fix: SC94174 in IKMKER.UPD. See also the note in section (C) dated 90/7/5. ---------------- 94/6/30 ----------------------------------------------- Kermit-370 honors the new level-1 restart/recovery mode. When a similarly equipped Kermit is at the other end, an interrupted binary transfer can be resumed where it left off by issuing a RESEND instead of a SEND (same syntax). Attributes must be enabled at both ends of the transfer, and the sender must be set to binary (V-BINARY and D-BINARY are also acceptable). If the file in question is already fully received at the other end, RESEND does nothing; if the file is not even partially received, RESEND behaves just like SEND. In order to insure that the partial file is not erased when a transfer aborts, it is helpful to issue a SET INCOMPLETE KEEP to the receiving Kermit. Kermit-370 now also supports the UPDATE option of FILE COLLISION. With that option, a received file is rejected (on grounds of "date") if the transmitted time stamp is no later than that of an existing file of the same name. The fix: SC94181 in IKMKER.UPD. ---------------- 94/9/3 ------------------------------------------------ Kermit-370 gives more accurate transfer statistics after uploads in server mode. Formerly, the time used in figuring transfer rates included any waiting time after the transfer completed but before the next inter-Kermit communication (result: understimated efficiency). The fix: SC94245 in IKMKER.UPD. ---------------- 94/9/20 ----------------------------------------------- Kermit-MUSIC now has more addressible space for optional global code, such as the TRACE facility (which is normally not enabled). The fix: SC94262 in IKMKER.UPD. ---------------- 94/9/22 ----------------------------------------------- Kermit-MUSIC now passes any non-emulated MUSIC commands to the system for execution. Such commands are executed in a sub-task, and any non-zero completion code is reported. As always, Kermit treats any invalid Kermit subcommand as a presumed MUSIC command if (and only if) SYSCMD is set ON. There is a small fix to the DIR subcommand, such that the default target is "*", and a related fix to all the emulated MUSIC commands such that they no longer generate spurious "invalid command" messages. The fix: SC94264 in IKMKER.UPD. ---------------- 94/10/15 ---------------------------------------------- Kermit-MUSIC now attempts to prevent losing exclusive control over the screen during transfers by setting MESSAGE OFF (and restoring the old setting afterwards). If control is lost anyway, Kermit attempts to recover. Executing REMOTE HOST commands as a server can trigger such a loss of control, but the recovery restores commumication. Recovery I/O operations are marked "b" in the Kermit log, just as in Kermit-CMS. The fix: SC94287 in IKMKER.UPD. ---------------- 94/10/27 ---------------------------------------------- Kermit-MUSIC now correctly executes the GIVE CONTROL subcommand (for saving the current values of the CONTROL-CHAR table of prefixed and unprefixed control characters). The fix: SC94299 in IKMKER.UPD. ---------------- 95/1/23 ----------------------------------------------- Kermit-370 misbehaved when doing a RESEND of a file that was already entirely received on the target system. If the length matched exactly that of the file to be sent, the whole thing would be sent again and appended. That is now corrected. Also, Kermit-370 now has the APC subcommand for sending Kermit commands to the micro while in connect mode. The fix: SC95023 in IKMKER.UPD. ---------------- 95/2/1 ------------------------------------------------ Kermit-370 objected to receiving a RESEND of a file too large to fit on disk without removing the portion already received. It now takes into account the fact that that portion will not be duplicated. The fix: SC95032 in IKMKER.UPD. ---------------- 95/2/2 ------------------------------------------------ Kermit-370 is now at level 4.3.1. ---------------- 95/2/28 ----------------------------------------------- Kermit-370 now uses the newly-transmitted time tag for a file that is resumed after an abortive transfer. The fix: SC95059 in IKMKER.UPD. ---------------- 95/4/18 ----------------------------------------------- Kermit-370 no longer treats an error-free file transfer as an "error" for the purpose of deciding whether to halt execution of a TAKE file. The fix: SC95108 in IKMKER.UPD. ---------------- 95/6/23 ----------------------------------------------- Kermit-370 now supports the REGET subcommand, which works like GET, but makes the server do a RESEND of the requested file. The fix: SC95174 in IKMKER.UPD. ---------------- 96/5/1 ------------------------------------------------ Kermit-370 now suppresses the "doubled" transmission of a file that can sometimes occur on a flaky connection. (This was a problem introduced in the process of avoiding unnecessary time-outs on flaky lines.) The fix: SC96122 in IKMKER.UPD. ---------------- 96/5/30 ----------------------------------------------- Kermit-370 now announces its system type to the other Kermit before a transfer. This meshes with new versions of the various micro Kermits that expect that information and will display it to the transfer screen. The fix: SC96151 in IKMKER.UPD. ---------------- 96/6/6 ------------------------------------------------ Kermit-370 has been modified to take advantage of another recent upgrade to micro Kermits -- it will be possible to issue a SEND or GET to the mainframe Kermit, and the micro will automatically pop from terminal emulation into transfer mode and then revert to emulation as soon as the transfer is done. The fix: SC96158 in IKMKER.UPD. ---------------- 97/1/28 ----------------------------------------------- Kermit-370 was failing to clear the "Kermit command error" status upon execution of the VERSION and ECHO subcommands. It now clears that status condition to "No errors" after all subcommands, as described in the documentation. The fix: SC97028 in IKMKER.UPD. ---------------- 97/6/13 ----------------------------------------------- Kermit-370 is now at level 4.3.2. ------------------------------------------------------------------------