KERMIT   TITLE 'Kermit for IBM 370'                            @SC86268 00001000
* Kermit for IBM 370.  Major revision:  1987 November          @SC87320 00002000
* See the version and system symbols below under 'Constants'   @SC86268 00003000
* Copyright (C) 1982, 1985 Columbia University                          00004000
*                                                                       00005000
* Permission is granted to any individual or institution to copy or     00006000
* use this program, except for explicitly commercial purposes.          00007000
*                                                                       00008000
* This program is the IBM 370 side of a file transfer system.  It       00009000
* can be used to transfer files between a micro and a system running    00010000
* under various operating systems.  See the KERMIT User's Guide         00011000
* and Protocol manual for the complete program specifications.          00012000
*                                                                       00013000
* All assembly-language Kermits for IBM 370's are derivatives of        00014000
* Kermit-CMS 1.00, although some (including the current version) have   00015000
* passed through more-or-less complete rewriting.  The following is a   00016000
* summary of the versions leading to the present one, which is actually 00017000
* a generic family of Kermits with specific members for various         00018000
* operating systems.                                                    00019000
*                                                                       00020000
* Daphne Tzoar, Columbia University Center for Computing Activities     00021000
* March 1982, Kermit-CMS Versions 1.00-2.01                             00022000
*                                                                       00023000
* Ronald J. Rusnak, University of Chicago Computation Center            00024000
* May 1984, Kermit-TSO 1.0                                              00025000
*                                                                       00026000
* Charles Painter, University of Toronto Computing Services             00027000
* December 1984, Series/1 support added to Kermit-TSO                   00028000
*                                                                       00029000
* Vace Kundakci, Columbia University Center for Computing Activities    00030000
* December 1985, Kermit-CMS Versions 2.02-3.0                           00031000
*                                                                       00032000
* Steve Blankinship, Triangle Universities Computation Center           00033000
* January 1986, Kermit-TSO 2.10 (derived from Kermit-CMS 2.01)          00034000
*                                                                       00035000
* John Chandler, Smithsonian Astrophysical Observatory                  00036000
* July 1986, Kermit-CMS/Kermit-370 Versions 3.1-                        00037000
*                                                                       00038000
* Dale White and Roger Fajman, National Institutes of Health            00039000
* December 1986, NIH TSO Kermit (rewritten in ALP)                      00040000
*                                                                       00041000
* Please address all comments and questions to:                         00042000
*                                                                       00043000
*    Columbia University Center for Computing Activities                00044000
*    Sytems Integration Group                                           00045000
*    Watson Building, 7th floor                                         00046000
*    612 West 115th Street                                              00047000
*    New York, NY  10025                                                00048000
*    Tel: (212) 280-3703                                                00049000
*                                                                       00050000
* Version 3.2 (Dec 86)                                                  00051000
*    Extensive revisions from version 3.1 - separation into generic     00052000
*    and system-specific sections.  New features: D-binary file type,   00053000
*    DIR command, give number of files sent in STATUS report, TDUMP     00054000
*    NAMES command to report names of files sent, give throughput       00055000
*    statistics in STATUS report, support REMOTE COPY and RENAME to     00056000
*    micro server, optional implied system commands, binary file record 00057000
*    padded with 0 (not blank), add file date to A-packets, reject file 00058000
*    if A-pkt says it's too big, display reason for A-pkt rejection in  00059000
*    STATUS report, SET PARITY to allow 8-bit data through S/1, allow   00060000
*    debug log of raw data, allow setting initial retry limit,          00061000
*    allow SET 8-BIT-QUOTE, use input case for XECHO + foreign files,   00062000
*    implement separate terminal anti-translation (TATOE/TETOA),        00063000
*    GIVE command to save translation table to disk as a TAKE file,     00064000
*    interface to allow Kermit subcommand execution from CMS EXEC's,    00065000
*    left and right margins for SEND,                                   00066000
*    SET PROMPT, SET MARGIN, SET HANDSHAKE, no page break in buffers,   00067000
*    automatic length-tuning of long packets.                           00068000
*    Settable tab stops - S. Blankinship                                00069000
*    Fix to allow long packets through 7171 VTAM - R. Bolch             00070000
*                                                                       00071000
* Version 3.1 (Jul 86)                                                  00072000
*    Extensive revisions from version 3.0 - including new SET/SHOW;     00073000
*    non-delimited V binary transmission; Generic, CP/CMS, and Kermit   00074000
*    commands in Server mode; packet padding; capability mask;          00075000
*    A-packets with file size, system tag, F/V, and Text/Bin;           00076000
*    SPACE cmd; SET/SHOW: APPEND,DESTINATION,DELAY,RETRY,SEARCH-ALL;    00077000
*    symbolic error numbers; 'Discard' indicator on Z-packet;           00078000
*    optional remote file name for SEND + micro GET; optional echo and  00079000
*    halt-on-error for TAKE files; default ft=TAKE for TAKE command;    00080000
*    commands to micro Server; selective or universal SHOW;             00081000
*    non-zero return codes for error conditions.                        00082000
*    XTYPE/XECHO commands - C. Frazier at Harvard Bus. Sch.             00083000
*    Long packet protocol - R. Bolch at Triangle                        00084000
*                                                                       00085000
* Version 3.0                                                           00086000
*    Almost a full rewrite.                                             00087000
*                                                                       00088000
* Version 2.02 (Dec 85)                                                 00089000
*    Add a SLEEP command after server/receive mode greetings.           00090000
*    Fix Logout hanging in Series1 mode - P. DiCamillio.                00091000
*    Hand-code HNDINT to allow non-009 console - B. Verser, D. Elbon    00092000
*    Add SET EOF ON/OFF command to truncate file at ^Z.                 00093000
*    Add SET TABS-EXPAND ON/OFF command to expand tabs in TEXT.         00094000
*    Do not change MAXOUT if not BINARY - Greg Small.                   00095000
*    Blk-3 chksum calculation begins at pkt len field - G. Small        00096000
*    Initial setting of status: no file tranfer yet - G. Small          00097000
*    Use max packet size of 60 for 7171 - P. Di Camillio                00098000
*    SHOW command defaults to SHOW ALL                                  00099000
*                                                                       00100000
* Version 2.01 (May 85)                                                 00101000
*    If virtual console is not a TTY, assume 3270.                      00102000
*                                                                       00103000
* Version 2.0                                                           00104000
* Sep 83: 8-bit quoting to allow binary file transfer.                  00105000
* Sep 83: Don't restrict disk lrecl to 256.                             00106000
* Aug 84: Pack as much data into a packet as possible.                  00107000
* Aug 84: Use common routines SPAR and RPAR for init packets.           00108000
* Sep 84: Add repeat count prefixing.                                   00109000
* Sep 84: Add support for two char checksum and three char CRC.         00110000
* Oct 84: Add SET/SHOW DEBUG mode.                                      00111000
* Feb 85: Add support for Series/1 front end.  Bob Shields              00112000
* Mar 85: Add server support including only basic functions.            00113000
*         Put send-error-packet code in one place only.                 00114000
* Mar 85: If debugging is on, log packets in a file.                    00115000
* Mar 85: Upon startup, read commands from two init files:              00116000
*         SYSTEM KERMINI and (USERID) KERMINI.  Lines with * as         00117000
*         the first character are comments.  Add TAKE command.          00118000
*         Lrecl for these files must be 130 or less.                    00119000
* Mar 85: Implement skip file or file group when receiving.             00120000
* Apr 85: Add a SHOW ALL command.                                       00121000
* Apr 85: Add SET WARNING ON/OFF in case incoming file has the          00122000
*         same name as an existing one.  If ON, rename incoming         00123000
*         file.  If OFF, overwrite existing file.                       00124000
* Apr 85: Modify SPACK and RPACK cosole I/O to use plists with          00125000
*         flags to bypass user translate tables.  Bob Shields           00126000
* Apr 85: Add SET ETOA and SET ATOE to allow user to modify the         00127000
*         translate tables so they conform to his system.  Display      00128000
*         tables with new command: TDUMP.  Have SET routines use        00129000
*         common code to get decimal input.                             00130000
* Apr 85: Encode outgoing filename, decode incoming one.                00131000
         TITLE 'MACRO definitions'                                      00132000
