*****************************CONKER.DOC***************************** Kermit-CO Version 2.1 8/15/86 -- Configured for the CONCURRENT Computer Co. 3200 series under OS/32, Rev. level 7.2.1 and up, by: Paul Mamelka Population Genetics Lab Southwest Foundation for Biomedical Research Box 28147 San Antonio, TX (512) 674-1410 -- Current versions are available thru INTERCHANGE library, and Columbia University -- Other contributors to the Kermit kause include David MacPhee, Tom Funke, John Cooley, Rick MacDonald, and Walter Shevchuk. -- Kermit-CO is a revised, and much expanded, version of a Kermit written for the Hewlett-Packard 1000: RTE-6/VM KERMIT, implemented by John Lee of RCA Laboratories Permission is granted to any individual or institution to copy or use this program, except for explicitly commerical purpose. John Lee 6/29/84 RCA Laboratories (609) 734-3157 -------------------------------------------------------------------- -- KERMIT-CO Release Files -- The Columbia release consists of three files: 1) CONKER.DOC - This file, describing Kermit-CO 2.1 2) CONKER.FTN - Fortran source (4039 lines) 3) CONKER.ETC - Contains the following short files: KERMLINK.CSS - Link file with XSVC1 option specified KERMIT.CSS - Run time Command file KERMIT.HLP - Help file of KERMIT-CO commands KERDEF - INCLUDE file of Symbol, Parameter definitions KERCOM - INCLUDE file of COMMON area housing globals The files on 3) should be seperated and named as specified. Note: Those using OS/32 at release levels below 7.2 will need to update their drivers to use the current BIOC driver. This is available, along with a more complete release of this Kermit (includes .TSK files etc.) from: INTERCHANGE Program Library 2 Crescent Place Oceanport, NJ 07757 -------------------------------------------------------------------- -- Kermit-CO 2.1 Update Summary -- These are the major fixes and enhancements incorporated in Kermit-CO 2.1 under OS/32. For more detail, please refer to the last section of this document. New program features: - Optional file renaming when name collisions occur - Automatic settings initialization from a user file at startup - Improved data transfer using SYSIO "Image" read/writes. - "Text" & "Binary" file modes, the latter allowing application files and other "8th bit significant" files to be exchanged among different operating systems. - Kermit commands are now 3-letter significant - Typeahead buffer usage is stable (and highly recommended) - Several End-of-record delimiters are available for outgoing files - Transmission error logging is now automatic Please note: If you are using Version 2.0 successfully and have no need of the added features in 2.1, or have tailored the program in such a way that you'd be loathe to go thru another revision cycle, please review Item 2) in the last section. It describes a program bug left over from the original Hewlett-Packard 1000 version. This bug affects mainframe to micro downloading only, but usually results in a program crash at the OS/32 end when the Typeahead buffer is enabled, and can produce other side effects as well, particularly in MS-DOS Kermit. If you decide to stay with Version 2.0, making this correction may save you much head-scratching and general consternation. --------------------------------------------------------------------- -- Logical Unit Assignments-- 1 - Comm. Input (LOCAL/RMTINFD) (CSS assigned) 2 - Comm. Output (LOCAL/RMTOUTFD) (CSS assigned) 3 - 12 - Transfer/Directory(MOREFILE)/Scratch files (BUFFCHAN) 15 - Command Summary: KERMIT.HLP (CSS assigned) 16 - Initial Settings: KERMIT.INI or User-specified in CSS 20 - Session log file KERMIT.LOG Note: Kermit-CO tries to open output files MOREFILE & KERMIT.LOG on the account in use; consequently, concurrent use of the program by more than one user on the same account will cause problems, since OS/32 quite properly refuses to "RENEW" a file already in use. If this is a critical limitation for enough users, it may be changed; but for the present it's recommended that simultaneous Kermit sessions take place from different accounts. This also prevents one user from accidentally (or maliciously) overwriting another's file when the FCHEK name collision option is OFF. -------------------------------------------------------------------- -- Installation and Use -- --> Setting up Kermit-CO: 1) Install KERMIT.TSK and KERMIT.HLP in a general purpose account 'n'. Modify the KERMIT.CSS statements: LOAD KERMIT.TSK AS 15,KERMIT.HLP to read: LOAD KERMIT.TSK/n AS 15,KERMIT.HLP/n 2) Install the modified KERMIT.CSS in a system account so it can be accessed by any user as "KERMIT". --> Using Kermit-CO: With the above setup, one evokes Kermit-CO by signing on as a terminal user from another Kermit (Micro or Mainframe, at 1200, 9600 BAUD) and entering "KERMIT" at the OS/32 prompt. An ID line, followed by the prompt "Kermit-CO>", will appear and the program is ready to roll. Be sure the parity settings on your local Kermit match those on the OS/32 device port thru which your connection was made. While terminal emulation may work if you sign on to an 8 bit port with 7 bit settings, attempts to transfer files usually fail. If a file named "KERMIT.INI" exists, Kermit-CO will read it for commands to execute before turning over control to the user at the prompt. KERMIT.INI should be an ASCII text file with one Kermit command (and appropriate parameter values) per line. Alternately, one can create a .INI file , rename it "MyOpts" (or whatever you like), and start up the program with "KERMIT MyOpts". Kermit-CO will then take it's startup commands from the file specified. If the file "KERMIT.HLP" has been installed, entering "HELP" will display the following information on your screen: -- Kermit-CO Command Summary -- Command Explanation EXIT/QUIT - End Kermit session HELP - Display Command Summary RECEIVE n - Prepare Kermit to receive file(s). For TEXT or BINARY files, n = record size; for CONTIG files, n = sectors SEND FILENAME - Send the contents of FILENAME to remote Kermit SEND @FILENAME - Treat FILENAME as directory, send files listed STATUS - Display current option settings SERVER - Initiate Server mode (Currently N/A) SET {Option} {New Value} DEBUG ON/OFF - Start/stop recording of Packets to Kermit.LOG DELAY n - Specify 'n' second wait before first packet sent FCHEK ON/OFF - If ON, incoming file names are made unique FILE TEXT/BIN/CONTIG - Mode of incoming/outgoing files MYQUOTE n - Control character quoting prefix (Default = # (35)) NPADS n - Request remote Kermit prefix packet with 'n' nulls 8BIT ON/OFF - If ON, 8-bit prefixing is done (For Even parity) PACKET n - Size, in bytes, of Kermit packet (30 < n < 95) PARITY - Line parity: EVEN/ODD = ASCII I/O, NONE = IMAGE I/O SEOR CRLF/CR/LF/NONE - End-of-Record delimiter used for SEND SOH n - 'Start of packet' ASCII code (Default = 01) --> For a more detailed description of Kermit usage in general, please consult the User manual on "KUSER.DOC". The manual "KPROTO.DOC" describes the technical aspects of the Kermit protocol. -------------------------------------------------------------------- -- Summary of Capabilities -- Kermit-CO 2.1 provides the basic Kermit protocol plus: 1) "TEXT/ASCII" and "BINARY" file transfers. 2) The ability to SET 0-20 "NULL"'s as padding characters before each packet. 3) 8 Bit prefix encoding, controlled via the SET 8BIT ON/OFF option. This option is enabled automatically when PARITY=EVEN, and disabled for PARITY=NONE. It may be changed manually after the PARITY setting is selected. Use of 8th-bit prefixing allows a Binary file to be pushed thru a 7-bit line. 4) A PARITY option that tells the program whether it's operating in a 7-Bit or 8-Bit environment. If Parity=NONE, 8 bit bytes are sent and received under SYSIO's Image/Binary mode. For ODD/EVEN settings, SYSIO's ASCII/Formatted mode is used. In this case, the 8th bit will be sent only if 8BIT=ON, otherwise it is simply stripped off. 5) A DEBUG option, which allows incoming/outgoing packets to be written to the file "KERMIT.LOG" (LU 20). 6) The ability to set the Record/Sector size to use in writing a file RECEIVEd. From 10-256 bytes can be specified, either on the command line ("RECEIVE 132", for example), or by replying to Kermit's query after "RECEIVE" is entered. If no size is specified directly, Kermit-CO uses defaults: for TEXT files, 80 bytes/record; for BINARY files, a physical sector size is specified, and the default is 256 bytes. In the case of CONTIG files, sequential 256 character sectors are used, so the program requests the number of sectors to allocate. 7) File name collision avoidance. IF FCHEK=ON, an incoming name in conflict with an existing file will be suffixed with a 3 digit number that creates a unique name. If FCHEK=OFF,the existing file will be overwritten. 8) Procedure file usage via "KERMIT.INI" or user file of KERMIT commands and start up. This allows commonly used startup and transfer sessions to be automated. (See KERMIT.INI for ex.) -------------------------------------------------------------------- -- OS/32 Notes -- 1) Kermit-CO uses SYSIO for all I/O with the "other Kermit", particularly the Extended SVC1 features available in OS/32 releases since 7.2.1. For those at earlier OS/32 levels, Kermit-CO can be gotten to work after a little surgery on your Terminal Driver to shut off the Echo on Read. If you're using the BIOC driver, there are some updates available thru the INTERCHANGE that allow some of the Extended SVC1 features to be added to earlier OS releases. 2) If you make changes to KERMIT.FTN and recompile/link it, the "XSVC1" OPTION must be specified to ensure that the new SVC1 functions are enabled. The file KERMLINK.CSS illustrates this option. The routines that use SYSIO are clustered at the end of the source code file so they can be easily chopped off into a seperate file for update and testing. Routines using SYSIO: GETLIN - Reads, a packet from the input line (CON:) PUTLIN - Writes the raw packet to the output line (CON:) GETKYBD - Gets Keyboard data from User TGETCH, TPUTCH - Character I/O to IBM (Deactiviated) PUTSTRNG - Handles Keyboard prompt output 3) Kermit-CO is set up for a system running with 7-bit/Even Parity ports. In such an environment, take care not to enter "SET PARITY NONE". Kermit will attempt to used Image I/O in this case, resulting in a "hung" port. In this case, using the ".MTM TERMINATE" command at the console will be necessary to clear the line again. 4) Use of 8 Bit/No parity lines requires setting port drivers at SYSGEN time to turn on "full" BIOC mode, and to specify that CR's (ASCII 13) be recognized as End-Of-Record on Image reads. Sample device statements: (OS/32 Release 7.2.1 and up) DEV:,addr,34,XDCOD=X0BF0,REC=132) 9600/8 Bit/None DEV:,addr,34,XDCOD=X0B70,REC=132) 1200/8 Bit/None DEV:,addr,39,XDCOD=X0BF0,REC=132,USER=(MASK=FF)) 9600/8 Bit/None DEV:,addr,39,XDCOD=X0B70,REC=132,USER=(MASK=FF)) 1200/8 Bit/None The extended driver code (XDCOD) was derived thusly: X0200 - Terminate image reads on CR X0800 - Full BIOC capabilities enabled X0100 - CMD2 is specified by low order byte of XDCOD; and is set as follows: X0070 - B'01xxxxxx' - 1200 BAUD (Clock B) (X00F0 - B'11xxxxxx' - 9600 BAUD) B'xx11xxxx' - 8 Data bits B'xxxx0xxx' - 1 Stop bit B'xxxxx00x' - No Parity B'xxxxxxx0' - Reserved (must be 0) For Driver 39, MASK=FF indicates the 8th bit is not stripped, allowing binary transfers to occur. Caveat: These settings have worked in our fairly standard OS enviroment, and at other Beta test sites, but may require modification depending on equipment used, clock speeds etc. Consult OS/32 Sysgen manual and old Interchange newsletters for more information. Or call up Concurrent and ask why the manuals aren't more helpful where BIOC is concerned. 5) As of OS/32 Release 8.2, the Typahead Buffer size may be increased. Since Kermit's maximum packet size is 94, using a larger buffer removes a potential source of packet re-transmittals caused by typeahead buffer overflow. To increase buffer size, add "TYPBLEN=n" to the device macro, where "n" represents the number of bytes to allocate, as in DEV:,addr,34,XDCOD=X0BF0,REC=132,USER=(TYPBLEN=160) -------------------------------------------------------------------- -- Troubleshooting -- If you have problems getting 2 Kermits to "talk" to each other: 1) Make sure PARITY and Bit settings match up between Kermit-CO and whatever local Kermit you are using. 2) Try it again. Noise, OS/32 slowdowns etc. can cause transmission problems serendipitously. 3) Request more PAD characters in front of incoming packets 4) Adjust the packet size up or down In general, Kermit-CO should function with 94 character packet size, No Padding, and Typeahead Buffer enabled under most system conditions. -------------------------------------------------------------------- As of June 1,1986, Kermit-CO has exchanged files successfully with the following systems: (at both 1200 and 9600 BAUD) IBM PC-XT/AT (MS-DOS 3.1 - MS-Kermit 2.27; Mirror; Procom) Apple Macintosh (Finder 5.3 - MacKermit; Red Ryder 9.2) Morrow Micro-Decision (CP/M 2.2 - Kermit-80) North Star Horizion (CP/M 2.2 - Kermit-80) Zenith-100 (CP/M 2.2 - using KermitHZ-80) Both TEXT and BINARY files have been "inverted" successfully between most of the systems listed. (This includes .OBJ,.TSK files from OS/32; .COM files from CP/M; .COM, .EXE files from MS/DOS; and WordStar files between MS-DOS and CP/M. I've been able to invert Macintosh applications using Red Ryder 9.2, which understands the "MacBinary" protocol in addition to Kermit, as well as Columbia's "MacKermit", using the Binary/Resource mode.) -------------------------------------------------------------------- -- Shape of Things to Come -- Projected enhancements for Kermit-CO 3.0: - LOCAL mode for originating Mainframe-to-Mainframe transfers - Activation of special IBM-Link features (Local mode dependant) - SERVER functions for simpler file transfer - Cyclical Redundancy Error Checking - Incorporation of all this info into a coherent user manual ********************************************************************** -- Kermit-CO 2.1 - What's New -- These are the major changes introduced in Kermit 2.1. If you decide to continue using Version 2.0, please check item 2). 1) The name and prompt "Kermit-PE" are no more. Instead we have the up-to-date "Kermit-CO", in honor of recent corporate shuffles in New Jersey. 2) In the routine SDATA, an erroneous variable name caused by a 2-letter transposition has been corrected. For those who may wish to update their copies of Version 2.0, these are the sordid details: The second call to the routine RPACK to receive an ACK/NAK from the remote Kermit used to read: STATUS=RPACK(LEN,NUM,RECKPT) and has been changed to: STATUS=RPACK(LEN,NUM,RECPKT) The original version went undetected by the compiler because of the use of IMPLICIT INTEGER*2 in the KERCOM declarations. The result: a simple scalar address was sent to a routine expecting the address of the array containing the packet just received. The rest I leave to your imagination. Suffice to say that this change stabilizes use of the Typeahead buffer (which adds greatly to Kermit-CO's efficency) and eliminates redundant ACK packets sent by the remote Kermit in response to Kermit-CO's NAKs of the unpredictable data pointed to by "RECKPT". It also points out the dangers of using sweeping IMPLICIT declarations that give misspelled variable names legitimacy. 3) Various other minor bugs and inconsistencies have been cleaned up, none quite as nasty as 2), but good riddance etc. Thanks are due David MacPhee for his unflagging vigilance in ferreting out some of the more esoteric of these. 4) Kermit-CO's command parser is now satisfied with just the first three letters of a command or SET option. It also will pick up the record length of an incoming file if specified on the command line, as in: "RECEIVE 126" (or "REC 126").(See item 6) for an exception to this usage) 5) The PARITY setting now controls the "flavor" of I/O operations under SYSIO. If set to EVEN, Formatted/ASCII SYSIO calls are used (the default in Ver 2.0) while PARITY=NONE signals Kermit to make use of SYSIO's Image/Binary transfer mode. 6) OS/32 files can be specified as either BINARY, TEXT, or CONTIG (for contiguous) using the SET FILE TEX/BIN/CON command. Typically, BINARY usage would be specified when transferring files where the 8th bit is significant, and no particular character sequence is used for End-Of-Record. Using the BINARY file mode on a No Parity line (or on an Even parity line with 8th Bit prefixing enabled; see 9) for an example), one can transfer .TSK, .OBJ etc. files from OS/32 to a local Kermit and back. CONTIG mode provides a 'special case' binary file handler for receiving .TSK files; instead of requesting a record length when RECEIVE is entered, it asks for the number of contiguous sectors to allocate for the incoming file. It's admittedly a crude way to do this, but the Kermit protocol allowing file attributes to be sent between Kermits is not widely available. ".TSK" files will work when received as plain Binary files; the CONTIG is necessary only if one wants to guarantee that contiguous space will be allocated. This approach may be improved if there is enough demand, it was a last-minute add-on. Transfers of applications software have been done successfully between Kermit-CO 2.1, and Kermits for MS-DOS, Macintosh (Red Ryder,Columbia's MacKermit), and CP/M. Special purpose files such as WordStar documents or NCAR meta files can also be tranferred. 7) In connection with 6), a new option (SET SEOR CR/LF/CRLF/NONE) is available to allow flexibility in specifying the End-Of-Record delimiter used by Kermit-CO when SENDing files. It is set automatically to CR/LF (Carriage Return (ASCII 13), Line Feed (ASCII 10)) for TEXT files, and NONE for binary; but can be expressly set to NONE, CR, LF or CR/LF after file mode is selected. CR could be set to send Text files to a Macintosh, for example, which is all that system requires, while LF might be used when sending to a UNIX Kermit Kermit. In RECEIVE mode, Kermit-CO expects CR/LF to delimit Text file records. Binary files are read as a continuous "stream" of bytes and broken up into records of the length specified by the user, so no record delimiter is required. 8) A 'File Name Check' (SET FCHEK ON/OFF) option has been added for name collision handling at the OS/32 end. When enabled (FCHEK=ON), Kermit-CO will create a new file name if an incoming file name is already in use. The new name is constructed by adding a numeric suffix of the series .001, .002, ... .999 to the first 1-8 digits of the name in conflict. Kermit works thru the series until it comes up with a unique name. If disabled, an existing file will be overwritten by an incoming file with the same name. 9) Startup option initialization can now be done automatically using a text file of Kermit commands in the same format as those entered at the "Kermit-CO>" prompt. This file can be named "KERMIT.INI", which will be opened and read automatically. Alternately, it may be given any name the user likes, and be specified on the command line when first starting up the program, as in: *KERMIT UserFile Since any Kermit command can be put in this file, one can set up several startup procedure files of routine operations, reducing the amount of interaction required to simply initiating SEND and RECEIVE commands at the local Kermit in response to Kermit-CO. For example, the procedure file: SET PARITY EVEN SET MODE BINARY SET FCHEK OFF SEND MyFile1.obj (User asked to perform local RECEIVE) REC 126 (User asked to perform local SEND) EXIT instructs Kermit-CO to configure itself, send an object file to local Kermit, receive a file back, (stored with record length = 126), and shut itself down. The user's role is reduced to initiating a RECEIVE, followed by a SEND at the Local level when prompted by Kermit-CO. 10) The KERMIT.LOG file is now opened at the beginning of a Kermit session independantly of the DEBUG option. If errors occur during a transmission, they are noted on this file; otherwise the file is deleted when the program is EXITed. If DEBUG is set ON, then each packet SENT or RECEIVED will be written to KERMIT.LOG, along with any error messages. The DEBUG option also controls the amount of information listed by the STATUS command: if ON , the full listing is displayed, but when OFF, Packet delimiters, quote character etc. are not shown. These are the major changes. Please report any problems enountered, or features you think should be incorporated in Version 3.0. Paul Mamelka Genetics Department Southwest Foundation for Biomedical Research Box 28147 San Antonio TX 78284 (512) 674-1410 (Ext. 353) ********************** End of KERMIT.DOC *****************************