File ktfc0d5.txt, copyright (C) Peter Lyall Easthope, 2000. All rights reserved. ** Contents What is it? Benefits of using KTFC Disclaimer Requirements What is in the package? How do I get KTFC? Installation User Configuration Sending a message Receiving a message Signature Lines Serial Port Problems Tidying the Mailbox Scanning Other Conferences Automated Startup FAQs System Specific Notes Macintosh Microsoft Windows MS-DOS Oberon Unixes and other systems running C-Kermit Bugs Limitations Support References Conditions of Use Fee Registration Thanks History Trademarks ** What is it? KTFC is the acronym for "Kermit To FirstClass". See references 1 and 2 below. KTFC is also the name of a script set which allows Kermit to communicate automatically with a FirstClass Server. ** Benefits of using KTFC - Kermit works on many systems including MS-DOS, MS Windows and unixes. KTFC has the potential to work with any Kermit which has script processing at least as good as MS-DOS Kermit 3.1.6. See System Specific Notes and reference 1. - Messages are read and composed off line using a text editor. - Options for user configuration are set by switches which are easily changed with a text editor. - Signature lines can be appended to a message automatically. - User confirmation before sending a message and before deleting an old message from the server is optional. - Messages can be read from directories other than the Mailbox---a directory in OneNet for example. - The KTFC scripts in their entirety are accessible to user customization. ** Disclaimer This software is provided "as is" without express or implied warranty. The author disclaims all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no event shall the author be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software. The author may change the software and documentation and issue a revision at any time without prior notice. ** Requirements KTFC has been tested with MS-DOS Kermit 3.1.6 and FirstClass Server 3.5.2. Kermit is available for many operating systems. See reference 1 and System Specific Notes. Installation and use of Kermit and KTFC require an editor. In DOS, EDIT is recommended. Various text processors can also be used. The vi and emacs editors are commonly used in unix systems. Before attempting to install KTFC the user should install Kermit and configure it so that communication can be established with a FirstClass server. Using the terminal emulator in Kermit, the user should be able to log in to the server and to read and send mail interactively. To allow the <delete> key on a PC to produce a backspace in the FC Server task, the Kermit command "set key \270 \8" should be issued---usually in the MSCUSTOM.INI or .kermrc file. ** What is in the package? The KTFC version 0.5 package comprises these 7 files. Each file contains plain text. datefil0.5 An auxiliary script; see Automated Startup below. ktfc0d5.txt This file. mailout File where outgoing messages are queued. prolog0.5 The script containing the user configuration, the login code and other procedures used by scan and sr. readme.kfc A brief description of the package. scan0.5 The script which reads the mailbox, deletes outdated messages from the FC server and reads directories other than the mailbox. sr0.5 The script for sending and receiving messages. The version number m.n is real. In the following discussions the version number is omitted from the file name. Thus, a mention of the file name prolog is really a reference to the file prolog0.5. ** How do I get KTFC? KTFC might be found on an Internet server or on your FirstClass server. If you find the 7 files on a ftp or iksd server transfer them to your Kermit directory. If binary mode is used for the transfer, the files will be received on your machine with the end-of-line notation that they have on the server. If text mode is used for the transfer, the end-of-line notation will be translated from that on the server to that used in your system. Text mode is appropriate, for example, if unix files are brought to a MS Windows machine. Various utilities and editor capabilities can also translate end-of-line notations. Alternatively, get the MIME file ktfc0d5.64. This is a text file which can be transmitted in an e-mail message. 0d5 represents the version number 0.5. The .64 extension on the file name refers to MIME base64 encoding. Transfer this file to your Kermit directory in text mode if you wish to use it. Alternatively, get the ZIP file ktfc0d5.zip. Transfer this file to your Kermit directory in binary mode if you wish to use it. ** Installation The objective of installation is simply to have the 7 files of the KTFC package in the Kermit directory with the correct end-of-line notation for the system. These are a few system specific notes. *** MS-DOS This is the procedure for extracting the files from the MIME archive in MS-DOS. If ktfc0d5.64 is on a diskette in the a: drive and the Kermit directory is c:\util\kermit type this. copy a:\ktfc0d5.64 c:\util\kermit<enter> Move to the Kermit directory. In our example type this. cd c:\util\kermit<enter> Expand the archive using a MIME base64 decoder. MIME en/decoding programs are available for all operating systems in current use. In MS-DOS I use MIME64 written by Karl Hahn. Search for mime64b.zip on the Web. If mime64.exe is in the \mime directory type this to expand the KTFC archive. \mime\mime64 ktfc0d5.64<enter> The 6 files plus this readme.kfc will be produced. After extracting the files, mime64 will report "No MIME base64 lines found in ktfc0d5.64". Don't worry about this message. If using ktfc0d5.zip follow the analogous procedure. Unpack the archive with pkunzip.exe which is readily available from BBS and Internet servers. *** Macintosh As of early 1999, development of Mac Kermit was not keeping pace with MS-DOS Kermit or with C-Kermit. KTFC has not been tested with Mac Kermit. Mac users should consider one of the off-line FirstClass clients---BulkRate by Greg Neagle for example. *** Microsoft Windows MS Windows users should also consider the OffRoad client written by Hans Haider. I have not tested KTFC with Kermit-95 but, of course, anyone is welcome to try that configuration. Until successful use of KTFC with Kermit-95 is established I can not offer the same level of support for that configuration as is provided for KTFC in the MS-DOS system. *** Unixes Testing in a unix system is on my "to do" list. Until testing is completed I can not offer the same level of support for KTFC in a unix system as is provided for KTFC in the MS-DOS system. If you wish to try KTFC, get the individual files in text mode. Alternatively, get ktfc0d5.64 or ktfc0d5.zip, unpack the archive and translate the end-of-lines using dos2unix or the like. *** Other Systems Files in the .64 and .zip archives have lines ending in <cr><lf>. The end-of-line notation may have to be translated for your system. Reports of problems and successes are welcome. ** User Configuration Approximately the first 70 lines of the prolog script is the User Configuration. This is where you set parameters and switches according to equipment and preferences. Open an editor on prolog and change the line "set modem HAYES" according to your modem. In MS-DOS, modem files are in the modems directory in your Kermit directory. You should already have a modem file specified in the MSCUSTOM.INI file. If your modem does not use COM2 change the line "set port com2" accordingly. If you do not know which com port is used try com2. If this fails check your MSCUSTOM.INI file. In the line "def _dialnum {}" insert the number of your FC server inside the {} brackets. Prefix the number with T for tone dialing. For pulse dialing give the number alone. To avoid being asked for your UserID every time you log in, change the line "def AU 1" to "def AU 0". To avoid being asked for your Password every time you log in, change the line "def AP 1" to "def AP 0". If AU is defined to 0 replace "guest" with your UserID. If AP is defined to 0 replace "please" with your Password. Additional configuration features are discussed as FAQs below. Save prolog. Quit the editor. KTFC is ready to use. ** Sending a message These instructions assume that you are in the Kermit directory and that Kermit works. To verify that Kermit is working, log in to your FirstClass server and send or read a message interactively. Solve any problem before attempting to use KTFC. Using an editor, compose outgoing messages in the file mailout (yyyymmdd.out if the dated OutFile is configured. For more information see "FAQs > ... How is the name of the outgoing file changed?"). Syntax is explained below. Close the editor. Type the command to invoke Kermit to process sr and strike the <enter> or <return> key. With MS-DOS Kermit version 3.1.6 and KTFC version 0.5, type this. msk316 -f sr0.5<enter> The KTFC version and the login process should be reported on the screen. If the login fails, try to identify the problem precisely. Once a problem is identified the solution may be simple. A prompt for each message gives the opportunity to avoid sending. This is useful if an old message has been left in the OutFile. Once you have sent a few messages and become familiar with KTFC you will probably want to shut off this prompt; see "FAQs > What is the purpose of the CS flag ... ?" After sr sends and reads all pending messages Kermit will quit and the prompt from your operating system will appear. Using the editor again, delete from the OutFile any message you do not want to send the next time sr is processed. Alternatively, old messages can be left in the OutFile and two message separator lines can be placed where sending is to stop. sr will not send messages in the OutFile which follow a pair of separator lines. The paired separators can be the first two lines of the OutFile. This is the syntax of the OutFile. The stock OutFile, mailout, contains example messages which you can use as a template. The example is addressed to the author; there is no harm in sending it. ========== syntax of text in OutFile ===================== <message> {<messageseparator>[n]<text> [<messageseparator><text>] <message>} ========================================================== =============== syntax of <message> ====================== [To:]<recipient> {[To:]<recipient>} [Copies:<copy recipient> {[Copies:]<copy recipient>}] Subject:<text> <messagetext> ========================================================== Notes. 1. Line breaks must be as shown. For example, a message ends at the end of a line and a recipient address ends at the end of a line. In DOS the end-of-line notation is <cr><lf>, in Mac it is <cr> and in unix it is <lf>. In most text editors the end-of-line character(s) is (are) inserted by pressing <enter> or <return>. This produces a line break in a text file. Otherwise the end-of-line characters are invisible. Square brackets, [], enclose a construct which can occur 0 or 1 times. Curly brackets, {}, enclose a construct which can occur 0 or more times. A term in pointed brackets and the brackets, <recipient> for example, must be replaced by appropriate text. Other text, Subject: for example, must appear just as shown. <text> may contain any ordinary text typed with an editor, excluding end-of-line characters of course. <messagetext> is any ordinary text including end-of-lines and excluding the message separator at the beginning of a line. 2. Every message must have the first line. [To:]<recipient> <recipient> must be a name in the directory of your FirstClass server or a valid Internet address. A valid Internet address has the form "[<realname>,] <userid>@<node>", not including the quote characters of course. The "<realname>," portion is optional. The remaining portions are required. These are two valid Internet addresses for me. peter_easthope@gulfnet.pinc.com Peter Easthope, peter_easthope@gulfnet.pinc.com sr checks for an @ character in the address. If one is found the address is assumed to be an Internet address and the characters ",i" are sent after it. Do not put ",i", ",I" or ",Internet" after an Internet address in the KTFC OutFile. If you do, this gateway identifier will be duplicated and the address will fail. 3. The "Copies:" section of the message header is optional. 4. The "Subject:" line is necessary and may not occupy more than one line. The <text> of the subject line may be empty. 5. Limitations on <message text> with MS-DOS Kermit are described under System Specific Notes. 6. The OutFile can contain more than one message. A message separator line, a line beginning with the message separator defined in the User Configuration section of prolog, separates messages. KTFC is distributed with the separator being "**EndOfMsg**", not including the " characters. 7. No messages after two consecutive separator lines are sent. 8. All lines between the "Subject:" line and the next message separator line, or the end of the file, are included in the message body. If one of your messages must contain a line beginning **EndOfMsg** change the message separator. Refer to "FAQs > I want to send a message which contains ...". 9. If the message separator is immediately followed by the character n, sr will not send the signature lines after the message text. 10. The message separator is not required after the last message. The end of the file is the end of the message. ** Receiving a message Type the command to invoke Kermit to process sr and strike the <enter> or <return> key. With MS-DOS Kermit version 3.1.6 and KTFC version 0.5, type this. msk316 -f sr0.5<enter> Messages in mailout will be sent and incoming messages which have not previously been read will be appended to the file mailin (yyyymmdd.in if the dated InFile is configured). ** Signature Lines "Signature" lines are applied to the end of each outgoing message by the procedure Sig invoked in ProceedMsg. The signature lines are defined at the end of the user configuration section of prolog. The number and contents of the signature lines can be changed by the user. The value assigned to SigLen must be the number of signature lines. If, for example, 4 signature lines are intended, the line "def SigLen 2" must be changed to "def SigLen 4". The 3rd and 4th lines must be defined; ie. lines "def \&s[3] {...}" and "def \&s[4] {...}" must be added immediately following "def \&s[2] {...}". The signature on an individual message can be suppressed by appending the character "n" to the separator. This is shown in the formal syntax above. "n" is meant to suggest "no signature". The signature can be eliminated permanently from all messages by commenting the line "xif not equal ... {Sig}" near the end of ProceedMsg in the sr file (ie. by inserting a ";" at the beginning of the line). ** Serial Port Problems This topic really belongs to Kermit rather than to KTFC but some details are just too significant to ignore. Kermit documentation recommends RTS/CTS flow control, sometimes called hardware flow control, in preference to XON/XOFF flow control. The serial link between a computer and an external modem can be deadlocked by changing the flow control in Kermit to RTS/CTS before changing the flow control in the modem. When this is done Kermit waits indefinitely for CTS assertion from the modem but the modem never asserts CTS because it continues to use XON/XOFF flow control. If you have an external modem, view the modems\*.scr file with the editor. The command to turn on RTS/CTS flow control in the modem, "output AT &H1&R2\13" for example, should preceed the command "set flow rts/cts" which sets flow control in Kermit. Every serial port and internal modem in a PC with the old ISA bus had a Universal Asynchronous Receiver Transmitter or UART. (A machine with the newer PCI bus may be delivered with Windows specific hardware such as a Winmodem. These notes on serial ports and UARTs may not apply to such a machine.) Communications through such a serial port or modem pass through a register or buffer in the UART. If the register or buffer is overrun, MS-DOS inserts a BEL character in the data stream. You will notice the BEL character because a tone will be emitted from the system speaker. If this error occurs in characters which KTFC depends upon to make a decision, it will fail. When KTFC fails you might find a BEL character among those it was processing. Kermit documentation, KERMIT.BWR for example, recommends a UART referred to as a 16550A to avoid errors. Additional information about UARTs can be found in reference 4. The 16550A is found infrequently on serial port cards for the ISA bus. If you have an external modem on an ISA system, the UART of the serial port is likely to be poorer than the 16550A. If this is the case the external modem is unlikely to work reliably at speeds above 9600 b/s. If your modem is faster and you observe errors, set the speed down to 9600 b/s. Make a backup copy of the modems\*.scr file and then open your editor on it. Look for a line such as "set speed 57600". If the speed setting is that simple, change it to "set speed 9600" and save the file. In some *.scr files the speed is set by a more complex process. In such a case study the code carefully before changing it. This is how I modified ppi.scr for a Practical Peripherals MC144MTII. Originally the speed was set by "atok 38400". That line was commented and a line "atok 9600" was inserted. That set the intended speed. Following the line "chkok {Can't initialize modem}" the line "goto config" was inserted. That skipped the model specific speed setting process. Following the label :CONFIG are these lines. echo Enabling modulation negotiation... output AT \m(_modcmd)\13 chkok {Can't enable modulation speed negotiation} define _modcmd These four lines are commented so that negotiation does not push the speed up again. With these changes saved, ppi.scr reports a connection at 9600 b/s. ** Tidying the Mailbox Old messages accumulate in the mailbox on the FirstClass server. The user can log in interactively and delete unwanted messages. This process is automated by scan. This script examines each message in the Mailbox. If a message is unread scan reads it into the InFile just as sr does. If a message has already been read, scan calculates the age---the difference in days between the creation date and the current date. Each message older than the value in the variable MsgLife is a candidate for deletion. If the variable CDM has the value 1 the user is prompted to confirm deletion. If CDM is 0 the message is deleted without user confirmation. According to previous examples, the script is invoked with the command "msk316 -f scan0.5". ** Scanning Other Conferences Many users routinely read messages in conferences other than the Mailbox. This includes conferences in OneNet. The scan script automates retrieval of such messages. Before scan can be applied, the path from the home conference to each conference to be scanned, must be placed in the User Configuration section at the beginning of the scan script. For example, on the GulfNet FirstClass server the conference "Science Talk" is reached by keying <6> <enter> <1> <1> <enter> <3> <enter>; the path is 6 11 3. Note the path from the Home conference to each conference you wish to scan. Open the editor on the scan script and find the definition of ListLen. ListLen must be given the number of conferences to be scanned. Change the 0 in the line "def ListLen 0" to the number of conferences you want to scan. Next, the values for the \%d[ ] array must be inserted. Each line beginning with "def \%d[1] {3 3}" specifies a path inside the {} brackets. Decomment ";def \%d[1] {..}" and ";def \%d[2] {..}"; ie. remove the ";" character at the beginning of each line. Add additional definitions as required. The index of the last component of d must be the value of ListLen. Inside each pair of {} brackets put a path as described in the preceeding paragraph. Save the scan file and close the editor. With MS-DOS Kermit version 3.1.6 and KTFC version 0.5, type this. msk316 -f scan0.5<enter> The messages retrieved will be found in the file which is also used for incoming mail. Normally I run scan once per day. On average a scan of 18 directories at 9600 b/s takes about 10 minutes. ** Automated Startup MS-DOS can be configured to automate the use of KTFC at startup. Adding these two lines to the end of the autoexec.bat file allows sr to be processed automatically when MS-DOS is started. cd \kermit msk316 -f sr0.5 Modify the cd command if your Kermit directory is not \kermit. Modify the Kermit invocation if you are using a MS-DOS Kermit later than version 3.1.6. A second arrangement automatically opens EDIT on an OutFile when MS-DOS is started. Configure the dated OutFile as described in "FAQ > ... How is the name of the outgoing file changed?" At the end of the autoexec.bat file insert these three lines. cd \kermit msk316 -f datefil0.5 editdate.bat The command "cd \kermit" tells MS-DOS to switch to the Kermit directory. "msk316 -f datefil0.5" invokes Kermit to process datefil. datefil checks whether a dated OutFile exists for the current date. If not, the dated file is created and a template of address, subject and message separator lines are written to it. Finally, a MS-DOS batch file containing the command to invoke EDIT on the dated OutFile is created in the Kermit directory. Processing of datefil is then complete and Kermit exits. "editdate.bat" invokes EDIT on the dated OutFile. The user can then compose one or more outgoing messages. When that is complete the user should exit from EDIT. Message transfer is initiated with the command "msk316 -f <date>.out" where <date> is typed in the format yyyymmdd. Variations of these automation arrangements can be adapted to other systems. ** FAQs *** Q. Why are sr and scan not integrated into a single script? sr pushes the limits of MS-DOS Kermit. All the macros required to implement the capabilities of sr and scan in one script can not be defined. If scan is configured to read several conferences, it requires much more time to process than does sr. I run sr several times each day to update the mailbox; usually scan runs only once per day. *** Q. scan connects to the server and reads a few conferences. Then the screen goes blank. What is wrong? Nothing. The screen fills and then clears. There is a delay before writing to the fresh screen as scan processes a big directory. *** Q. How can interpretation of a Kermit script be interrupted other than by switching off the power? A. <ctrl>+<c>; hold down the <ctrl> key and strike <c>. *** Q. With MS-DOS Kermit, why is there a period at the beginning of each blank line in an incoming message? A. This is a side effect associated with a "work around" for an idiosyncrasy of MS-DOS Kermit. See System Specific Notes > MS-DOS Kermit > The Side Effect Problem. *** Q. My InFile is getting too big. What can be done? A. The simplest solution is to delete the file. In MS-DOS type "del mailin<enter>". If you want to save the messages, the file can be renamed; for example, type "rename mailin mailin1<enter>". *** Q. What is the purpose of the line "log session \v(ndate).log" in the User Configuration section of prolog? It invokes session logging, which is explained in _Using MS-DOS Kermit_. To activate session logging decomment these lines. ;if exist \v(ndate).log del \v(ndate).log ;log session \v(ndate).log KTFC will process faster when it is not logging a session. *** Q. Incoming messages are placed in mailin but I want them in files named according to date of receipt. How is the name of the incoming file changed? A. The name of the incoming file is the value in the macro variable InFile defined in the User Configuration section of the prolog file. Decomment the line ";asg InFile \v(ndate).in". An example of such a dated file name is 19990627.in. *** Q. Outgoing messages are placed in mailout but I want them in files named according to date. How is the name of the outgoing file changed? A. The name of the outgoing file is the value in the macro variable OutFile in the prolog file. Decomment the line ";asg OutFile \v(ndate).out". If sr is executed on June 27 of 1999, it will try to send messages in a file named 19990627.out. If no such file exists, no messages will be sent on that day. *** Q. Old messages are accumulating in my Mailbox on the FC server; deleting them interactively is tedious. How can old messages be deleted from the server automatically? A. Run the scan script. Messages older than MsgLife will be deleted. MsgLife is assigned a value near the beginning of the scan script. Change the value if you wish. *** Q. What is the purpose of the CS flag in the prolog script? A. CS is the acronym for Confirm Send. With CS set to 1, sr will read each outgoing message in the OutFile and then prompt the user for confirmation before sending. When you tire of giving this confirmation, use the editor to set the value for CS to 0. *** Q. What is the purpose of the DAR flag in the prolog script? A. DAR is the acronym for Delete After Receipt. With DAR set to 1, sr and scan will attempt to delete each unread message in the Mailbox after reading it. If INPUT of a message fails while it is being received and DAR is set to 1, there is a possibility of the message being deleted before it is retrieved from the server correctly. Most users will be best served by leaving DAR with the value 0 and relying on scan to delete outdated messages. *** Q. I want deletion of messages to occur without the prompt for confirmation. How do I turn off the prompt? A. The prompt to confirm deletion occurs or not accordingly as the switch CDM is set to 1 or 0. When you tire of giving this confirmation, open the editor on prolog and set the value for CDM to 0. *** Q. Processing of sr (or scan) failed while a message was being received. What should be done? Check that your modem has "hung up" and then restart the script to finish processing. The failure probably resulted from a serial port error, discussed in Serial Port Problems above, or from one of the limitations of MS-DOS Kermit, described in System Specific Notes. In any case the faulted message is no longer unread and will not cause the script to fail again. A message can be read using Kermit interactively and can be recorded in the session log. Session logging is explained in _Using MS-DOS Kermit_. *** Q. I want to send a message which contains a line beginning with **EndOfMsg** but this is the message separator. How can the message be sent intact? A. Change the message separator. Open the editor on prolog and find the variable MSep in the User Configuration. Change the assigned value to any string you wish. The length need not be 12 characters. Choose a string which is not likely to appear in future messages. ** System Specific Notes *** Microsoft Windows Microsoft Windows is not available here. Reports from users are welcome. Appropriate information will be incorporated into documentation of subsequent releases for benefit of MS Windows users. *** MS-DOS The Side-Effect Problem KTFC was developed on MS-DOS Kermit. Originally an incoming message was handled using \v(input) directly. Problems became evident. For example, if an incoming message contained Kermit code, the interpretation of KTFC was "sidetracked". Kermit Support recommended that \v(input) be copied to a macro variable and that subsequently the macro variable be used rather than \v(input). This was implemented in the procedure SaveLine in the sr script. SaveLine prevented Kermit code received by INPUT from sidetracking the interpreter but then a new problem appeared. Lines containing visible characters had a comma appended. This was solved by deleting the last two characters from the line and then writing the line to the file with writeln. Perversely, another problem appeared. A line which was empty was deleted. This was solved by replacing an empty line with a line containing a period. All these features are implemented in the SaveLine defined when KTFC is used with MS-DOS Kermit. With other systems SaveLine is defined to simply record \v(input) in a macro variable. These complications would be eliminated if INPUT simply recorded incoming characters in a buffer where they would remain unchanged and available until explicitly cleared. Other Problems A minus sign "-" at the end of a line in an outgoing message causes that line and the following line to be joined when sent to the server. Avoid ending a line in an outgoing message with a "-" character. Transmission failures for messages containing the characters "\" and "{" have been observed. Leading blanks are stripped from a line when a message is sent. Leading and trailing blanks are stripped from an argument passed to a macro. A problem specific to MS-DOS Kermit can cause script processing to fail. Refer to "FAQs > Processing of sr (or scan) failed ...". *** Oberon I use the PC Native Oberon operating system; see http://www.oberon.ethz.ch/. Kermit is not yet implemented in Oberon so I use MS-DOS Kermit to transfer mail. I reboot the machine with Oberon to read incoming messages and to compose outgoing messages. Edit and ET in Oberon are very well suited to editing message files. The Oberon.Text file contains these groups in the InitCommands section. { DOS.CopyFrom "c:/kermit" mailin ~ } { ET.OpenAscii mailin } These commands are in System.Tool. ET.OpenAscii mailin DOS.CopyTo "c:/kermit" mailin ~ ET.OpenAscii mailout DOS.CopyTo "c:/kermit" mailout ~ *** Unixes and other systems running C-Kermit Testing with C-Kermit on a unix system is on my "to do" list. Reports from users are welcome and appropriate information will be incorporated in future releases. ** Bugs Bug reports and suggestions are welcome. Analysis of a bug resulting from a specific message requires a copy of the message which caused the problem. The user may need Software independent of KTFC to send a message for diagnosis. ** Limitations The limitations of MS-DOS Kermit described in System Specific Notes can not be completely overcome by KTFC. The ability to send and receive attachments using the X-modem protocol imposed by the FC server would be nice. If this can be implemented for C-Kermit it is unlikely to work with MS-DOS Kermit because of limitations described above. Nevertheless, a binary file can be transmitted by ASCII encoding it, with a MIME algorithm for example, and including the encoded file in the body of a message. I have no plans to implement attachment handling. Rather that descend to each target directory from Home, scan might perform a tree traversal. The "*" which marks a FirstClass directory containing unread items might be used to improve efficiency. The sr script pushes the limits of MS-DOS Kermit and the programming requirements for tree traversal are likely to exceed the capability of MS-DOS Kermit. I have no plans for work on this implementation. The calculation of the age of a message does not take account of February 29 in a leap year; the age of a message which is on the server on February 29 will be one day longer than calculated. scan will allow this message to remain on the server one day more than specified by MsgLife. This is unlikely to be seriously harmful. ** Support Are you having difficulty installing Kermit? Are you modifying a KTFC script and in need of help with Kermit programming? Questions about Kermit and Kermit programming should be sent to the Usenet forum comp.protocols.kermit.misc. Not all FirstClass servers subscribe to this forum and you might not have access to it from home. Most public libraries now have Web terminals. Anyone can go to http://www.deja.com/, open an account and have access to comp.protocols.kermit.misc. The Deja account allows subscription to e-mail delivery of the forum. KTFC users can subscribe to the ktfcinfo mailing list. Send a message with empty subject field and empty message body to ktfcinfo-subscribe@egroups.com. You will be asked for a confirmation. Once your subscription has been accepted, you can send support questions to ktfcinfo@egroups.com. To learn more about eGroups read http://www.egroups.com/. To leave the mailing list, send an empty message to ktfcinfo-unsubscribe@egroups.com. Messages sent to ktfcinfo should be plain ASCII text. html code wastes communications and human time; please refrain from sending it. A query posted to ktfcinfo may benefit other Kermit users. I will tend to give more attention to a query in ktfcinfo than to the same query sent in a personal message. Mention your operating system (Linux, MS-DOS or something else), Kermit version number and KTFC version number. Be as specific as possible in describing the problem. If there is an error message, record and report it. Your InFile or OutFile or the session log may be required. If you can not send e-mail, post is acceptable. My address is given below under Registration. Please do not ask for support by telephone. ** References 1. Kermit in many forms is available from http://www.cc.columbia.edu/kermit/ and from ftp://kermit.columbia.edu/kermit/. Kermit softwares are products of Kermit Distribution, Columbia University Center for Computing Activities, 612 West 115th Street, New York, NY 10025, USA. 2. FirstClass is produced by SoftArc Inc. See http://www.softarc.com/. 3. MS-DOS Kermit is documented in _Using MS-DOS Kermit_, Second Edition by Christine M. Gianone, (C) 1992, Butterworth-Heinemann / Digital Press. C-Kermit is documented in _Using C-Kermit_, Second Edition by Frank da Cruz and Christine M. Gianone, (C) 1997, Butterworth-Heinemann / Digital Press. Additional information is available from the Web site in reference 1. Features of the Kermit language additional to those described in the manuals are described in files available from the Columbia server, reference 1. 4. Information about UARTs is available at these locations. http://www.linuxdoc.org/HOWTO/Hardware-HOWTO-10.html http://www.redhat.com/support/docs/howto//PPP-HOWTO/PPP-HOWTO-8.html Submit "UART 16550A" to a Web searcher to find additional information. ** Conditions of Use The copyright to each file in the KTFC package belongs to the author. The files are not in the public domain. Please attribute KTFC to the author when mentioning it in a publication. If registered, you may ... modify the files for your individual use. ... use the original or modified files for personal, academic or commercial communications. ... distribute the archive ktfc0d5.64, the archive ktfc0d5.zip or the complete set of 7 files. The package may be distributed via a network from a server freely accessible to the public or by storage media. Regardless of registration you may not ... violate my copyright by plagiarism. This includes appropriation and publication of the name KTFC and of any significant portion of a KTFC file. ... distribute individual files isolated from the KTFC package. ... distribute KTFC under a different name. ... publish similar data under a name resembling KTFC. KtFC, ktfc, KTFC3 and XKFTC, for example, are too similar. ... suggest, imply or state an affiliation between KTFC and an entity other than the author. ... charge a fee for distribution of KTFC. ... distribute KTFC to customers of a business, exclusive of the public at large. This includes distribution on a storage medium and distribution via a network. ... use KTFC within a hardware or software product which is given away or sold. For any use or distribution outside of these conditions please contact the author. ** Fee For an individual, the registration fee is 25 US dollars or 35 Canadian dollars. This covers use of version 0.5 of KTFC and future revisions until further notice. The fee also covers consultation to assist in installing, configuring and troubleshooting up to about 30 minutes of my time. The magnitude of the fee is valid until 2000 August 31 and may change after that date. Everyone mentioned under Thanks is exempt from payment. Extensive time may be required to adapt a script to a specific purpose. Assistance with modification of scripts may be subject to charge in addition to the KTFC registration fee. The fee does not include support for Kermit. ** Registration Registration is by sending me a name, contact address and the fee specified under Fees. The post is not perfectly reliable; I can not take responsibility for a loss of cash or other instrument of payment in the mail. Registration fees are my principal source of income; I really appreciate receiving them. Support can not be provided to users who are not registered. If the fee is beyond your means, let me know. Peter Easthope, peter_easthope@gulfnet.pinc.com 2701 Privateers Road RR2, Pender Island, BC V0N 2M2 Canada ** Thanks to ... Maria Watson for extensive testing. ... the staff of the Kermit Project at Columbia University for assistance with Kermit; in particular to Jeffrey Altman, Frank da Cruz and Christine Gianone. ... Professor Joseph Doupnik for assistance with MS-DOS Kermit. ** History 1999 January Prototype of KTFC developed with Kermit 3.14. 1999 02 16 KTFC0.0 testing. 1999 02 20 Kermit 3.15 installed. 1999 02 20 Attempt to use \fsubstring(\%a,1,1) to identify unread messages. 1999 05 11 \fsubstr(\%m,1,1) successfully identified unread messages. 1999 05 16 Improved extraction of message number. 1999 05 17-18 Incorporated \fsubstr(\%m,1,1) to simplify processing of header of outgoing message. 1999 05 22 KTFC0.1 released for testing. 1999 05 26 Reported bug in handling of a blank character (20_F) in an argument to a macro, to Kermit Support. 1999 05 28 Incorporated minput to simplify handling of special cases of input, including [More] prompt. 1999 05 29-06 03 Corrected syntax of string comparisons; eg. if equal \fsubstr(...) \%m changed to if equal {\fsubstr(...)} {\%m}. 1999 06 05-06 07 Added handling of defective and ambiguous addresses. Various improvements using SWITCH statements. 1999 06 12 Fixed end-of-file handling. Double message separator no longer needed after last message. 1999 06 28 Moved deletion of message into macros. 1999 07 04 Improved the recognition of the end of an incoming message. 1999 07 05-14 Moved all code for receiving messages into macros. 1999 07 15 Added user configuration section at beginning of KTFC. 1999 07 16 Reorganized code preceding macro definitions. 1999 07 17 Released KTFC0.2 for testing. 1999 07 17-18 Improvements to SkipDeja. Kermit 3.16 bug found: leading blanks deleted by INPUT, leading and trailing blanks deleted when argument is passed to macro. 1999 07 22 Improvements in handling of login. 1999 08 23 -1999 09 15 Sending of message header rewritten in macros. 1999 09 22 KTFC0.3 script frozen. 1999 09 22-23 Simple mailbox tidying code added. 1999 11 07 Code to avoid a message number beginning with 0 --- eg. "05". 1999 11 14 KTFC0.4 script frozen. KTFC split into script for sending and receiving messages SR and script for tidying the mailbox TIDY. 1999 12 03-04 Code for applying "signature" lines at the end of a message added to SR. 2000 01 04-20 Added code for reading messages from directories other than the mailbox. 2000 02 01-03 Code common to SCAN, SR and TIDY moved to PROLOG. 2000 02 19-21 Mailbox tidying incorporated into SCAN thereby obsoleting TIDY. 2000 03 01-08 Miscellaneous revisions to README.KFC. 2000 03 09-10 Internet address recognition added; ",Internet" no longer required in address. 2000 03 10 Name README.KFC changed to KTFC0P4.TXT. 2000 03 11-19 Miscellaneous revisions to KTFC0P4.TXT. 2000 03 20 Revisions to KTFC0P4.TXT and preparations of MIME -2000 04 06 archive. 2000 04 06 Error in calculation of age of message with attachment corrected. 2000 04 24-28 Definition of dial and chkmdm macros placed in PROLOG; MSKERMIT.INI and MSCUSTOM.INI are no longer required. 2000 04 28 In SR a bug in inputing control sequences when sending a message was corrected. 2000 05 01-04 Miscellaneous revisions to KTFC0P4.TXT and README.KFC. 2000 05 08 Names of script files changed to lower case. 2000 05 09 Documentation revised accordingly. 2000 05 10 KFTC0.4 Released to the Kermit Project, Columbia University. 2000 05 19 \&o[1] tested in place of OutLine. 2000 05 20 Definition of SaveLine made system dependent. Procedure SLEC removed. 2000 05 19-21 Miscellaneous revisions to ktfc0d5.txt. 2000 05 24 KTFC0.5 Released to the Kermit Project, Columbia University. ** Trademarks "Macintosh", Apple Computer, Cupertino, CA. "FirstClass", SoftArc Inc., Markham, ON. "Kermit", Henson Associates, Inc., New York, NY. Name used with permission by Kermit Distribution, Columbia University Center for Computing Activities, New York, NY. "IBM PC", International Business Machines Corp., Armonk, NY. "Linux", registrant: Croce, William R. Della, Jr., Boston, MA. last listed owner: Torvalds, Linus, Santa Clara, CA. "MS-DOS", "Microsoft Windows", Microsoft Corporation, Redmond, WA. "Red Hat", registrant: Red Hat Software, Inc. Durham, North Carolina. "UNIX" exclusive licensee: X/Open Company Ltd. registrant: American Telephone and Telegraph Company Corporation, New York, NY. last listed owner: UNIX System Laboratories, Inc. Delaware, NJ.