home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / msr313src.tar.gz / msr313src.tar / msr312.upd < prev    next >
Text File  |  1992-09-24  |  25KB  |  562 lines

  1. File MSR312.UPD                            19 August 1992
  2.  
  3.                MS-DOS KERMIT 3.12 UPDATE NOTES
  4.  
  5.  
  6.    Author: Professor Joe R. Doupnik, Utah State University, Logan, UT, USA
  7.  
  8.  
  9. Use this file as a supplement to the MS-DOS Kermit 3.11 documentation:
  10.  
  11.   Christine M. Gianone, "Using MS-DOS Kermit", Second Edition, Digital Press,
  12.   Bedford, MA, 1991, 345 pages.  Packaged with version 3.11 of MS-DOS Kermit
  13.   for the IBM PC, PS/2, and compatibles on a 5.25-inch diskette.
  14.  
  15.     Order Number: EY-H893E-DP
  16.     Digital Press ISBN: 1-55558-082-3
  17.     Prentice Hall ISBN: 0-13-952276-X
  18.  
  19.     Internation Edition Order Number: EY-H893E-DI
  20.     International Prentice Hall ISBN: 0-13-953043-6
  21.  
  22.   US single-copy price: $34.95; quantity discounts available.  Available in
  23.   computer bookstores or directly from Digital Press.  In the USA, call
  24.   Digital Press toll-free 1-800-344-4825 to order; major credit cards
  25.   accepted.  Overseas, order through your bookstore or your local Digital
  26.   Equipment Corporation branch.
  27.  
  28.   A German-language edition is also available:
  29.  
  30.   Christine M. Gianone, "MS-DOS Kermit, Das universelle
  31.   Kommunikationsprogramm", Verlag Heinz Heise, Hannover, Germany (1991), 414
  32.   pages.  Packaged with version 3.11 of MS-DOS Kermit for the IBM PC, PS/2,
  33.   and compatibles on a 5.25-inch diskette, including German language help
  34.   files.  Price: DM 69,00.  ISBN 3-88229-006-4
  35.  
  36.   And a French-language edition is in preparation by Schiefer & Cie.,
  37.   Versailles; publication expected Fall 1992.
  38.  
  39.   The English-language edition can also be ordered from:
  40.  
  41.     Kermit Development and Distribution
  42.     Columbia University Center for Computing Activities
  43.     612 West 115th Street
  44.     New York, NY  10025  USA
  45.     Telephone: (USA) 212 854-3703
  46.  
  47.   Domestic and overseas orders accepted.  Price: $34.95 (US, Canada, and
  48.   Mexico), $45 elsewhere.  Orders must be prepaid by check in US dollars.
  49.   Add $10 to add a 3.5-inch Distribution diskette.  Price includes shipping.
  50.   Do not include sales tax.
  51.  
  52. PATCHES
  53.  
  54. Version 3.12 includes the corrections of the MS-DOS Kermit 3.11 patch file:
  55.  
  56.     Patch 1 Optional.
  57.     Patch 2 Corrected unwanted double echo from Telnet negotiations.
  58.     Patch 3 correct cursor indexing problem with scrolling region setup
  59.     Patch 4 nested curly brace matching
  60.     Patch 5 fix skipped reports to host
  61.     Patch 6 correct 8-bit command end of transparent print, print report
  62.     Patch 7 correct use of CR/LF with parity on networks
  63.     Patch 8 correct decoding of DEC UDK hex characters
  64.     Patch 9 work around problem in TES v2.2/R8 which clobbers Kermit
  65.  
  66. NEW FEATURES
  67.  
  68.    TCP/IP Telnet
  69.    -------------
  70.  
  71. 1. Add direct support for Novell ODI board drivers.  This is transparently
  72.    used if a Packet Driver is not found.  No extra protocol shim is needed.
  73.    Frame types usable are limited by the board so they "should" include
  74.    Ethernet_II (Blue Book, regular), 802.3, 802.2, 802.2 with SNAP header,
  75.    Token Ring, and perhaps Arcnet.  The ODI interface will be tried if a 
  76.    Packet Driver is not found, and it can be selected in preference to a PD 
  77.    interface by using command:
  78.  
  79.    SET TCP/IP PACKET-DRIVER-INTERRUPT ODI
  80.  
  81.    where "ODI" replaces the interrupt number of a Packet Driver.
  82.  
  83.    For ODI, file NET.CFG should have the lines "Protocol IP etc" as shown
  84.    below as an example:
  85.  
  86.     # File NET.CFG, example
  87.     PB buffers=10
  88.     show dots=on
  89.  
  90.     Link Support
  91.         buffers 6 1514
  92.         MemPool 2048
  93.  
  94.     Link Driver SMCPLUS
  95.         Port  280 20
  96.         Mem   000CA000 2000/10
  97.         Int   7
  98.         frame Ethernet_II
  99.         Protocol IPX    8137    Ethernet_II
  100.         Protocol IP    0800    Ethernet_II
  101.         Protocol ARP    0806    Ethernet_II
  102.         Protocol RARP    8035    Ethernet_II
  103.  
  104.    There is the question of which board Kermit (or IPX or other application)
  105.    will use if two or more boards are available.  The answer discovered from 
  106.    experiments is in several steps.  The application wishes to find a board
  107.    which supports "its protocol", meaning lines such as:
  108.  
  109.        Protocol IPX 8137 Ethernet_II
  110.    or:
  111.         Protocol IP  0800 Ethernet_II
  112.  
  113.    in a Link Driver section of NET.CFG.  The protocol in this case is
  114.    character string "IPX" or "IP".  There may be several board supporting the
  115.    same frame (Ethernet_II in these examples) required by that protocol.
  116.  
  117.    The default method of finding a board is the application chooses "the first
  118.    board" offering a suitable frame, regardless of whether or not the Protocol
  119.    IPX etc line is present for that board.  The "first" part refers not to the
  120.    contents of NET.CFG but to the order in which board drivers are loaded at
  121.    DOS level.  So the indented (important to note the indentation) protocol
  122.    lines tell ODI which frame a protocol needs, and a TYPE to use for
  123.    recognizing packets, but the lines do not identify a particular board.  I
  124.    know, it seems to be counterintutitive.  However, it is probably wise to
  125.    include the lines for each candidate board.
  126.  
  127.    To target a particular board a separate main section is used in NET.CFG.
  128.    The section starts with the word Protocol against the left margin and has
  129.    BIND indented beneath it, like this,
  130.  
  131.        Protocol  IPX            starts in column 1 to create main sec
  132.         bind smcplus        interior must be indented
  133.  
  134.    Kermit uses two forms of this main section, to bind to the first board
  135.    whose driver name is listed after the word "bind", or to a particular board
  136.    in DOS loading order.  The Protocol line uses keyword Kermit so that Kermit
  137.    knows which of several such to examine.  Examples are:
  138.  
  139.        Protocol Kermit            this section is for Kermit
  140.         bind exos        bind to first driver named exos
  141.    or:
  142.  
  143.        Protocol Kermit            this section is for Kermit
  144.         bind #2            bind to the board loaded second
  145.  
  146.    Kermit considers the text in these sections to be case insensitive.  The
  147.    #<digit> construction must not have a separation between the number sign
  148.    (#) and the digit.  The #<digit> case is normally used when two or more
  149.    boards share the same driver and thus are not distinguishable by name
  150.    alone.  A sample STARTNET.BAT file might look like this:
  151.  
  152.     c:\lsl                LSL is always loaded before boards
  153.     c:\smcplus.com            SMC/WD8003E board, the first
  154.     c:\exos.com            EXOS-205T board, the second
  155.     rem c:\odinsup            Odinsup can coexist with Kermit
  156.     rem c:\odipkt 0 96        Odipkt can coexist with Kermit
  157.     c:\ipxodi            IPX is always loaded after boards
  158.     c:\bnetx ps=my-preferred-server     Burst mode NETX loads after IPX
  159.  
  160.    If both exos and smcplus boards offer frame Ethernet_II, Kermit will choose
  161.    the first loaded board, smcplus, in lieu of a BIND command.  Putting the 
  162.    section "Protocol Kermit, bind <board name or number>" anywhere in NET.CFG 
  163.    selects a particular board for Kermit.
  164.  
  165.    Kermit requires three "protocols", IP, ARP, and optionally RARP as shown
  166.    above.  The frame types can be anything the board will support: Ethernet,
  167.    Token Ring, Arcnet, all IEEE 802.2 based frames etc.  ODI will complain if
  168.    the frame type cannot support these protocols.  A complete NET.CFG file
  169.    using two boards is shown below.
  170.  
  171.     # File NET.CFG, an example with two boards
  172.     PB buffers=10
  173.     show dots=on
  174.     # all main sections must start in column 1, indent local material.
  175.  
  176.     # Protocol "IPX" is for Novell's IPXODI
  177.     Protocol IPX
  178.         Bind EXOS
  179.  
  180.     # Protocol "Kermit" is for MS-DOS Kermit
  181.     Protocol KERMIT
  182.         Bind EXOS
  183.  
  184.     Link Support
  185.         buffers 6 1514
  186.         MemPool 2048
  187.  
  188.     Link Driver exos
  189.         Port  310 20
  190.         Mem   000D0000 400
  191.         Int   5
  192.         frame Ethernet_II
  193.         Protocol IPX    8137    Ethernet_II
  194.         Protocol IP    0800    Ethernet_II
  195.         Protocol ARP    0806    Ethernet_II
  196.         Protocol RARP    8035    Ethernet_II
  197.  
  198.     Link Driver SMCPLUS
  199.         Port  280 20
  200.         Mem   000CA000 2000/10
  201.         Int   7
  202.         frame Ethernet_II
  203.         frame Ethernet_Snap
  204.         Protocol IPX    8137    Ethernet_II
  205.         Protocol IP    0800    Ethernet_II
  206.         Protocol ARP    0806    Ethernet_II
  207.         Protocol RARP    8035    Ethernet_II
  208.  
  209.     # Protocol "TCPIP" is for Novell's Lan WorkPlace for DOS
  210.     Protocol TCPIP
  211.         ip_address    129.123.1.99
  212.         ip_router    129.123.1.254
  213.         ip_netmask    255.255.255.0
  214.         tcp_sockets    8
  215.         udp_sockets    8
  216.         raw_sockets    1
  217.         nb_sessions    4
  218.         nb_commands    8
  219.         nb_adapter    0
  220.         nb_domain    usu.edu
  221.  
  222.    As a usual reminder, only one protocol stack of a given kind can be used
  223.    over the same board at the same time.  At the moment there is no Windows
  224.    support for this ODI coupling.  Throughput is about the same as with a
  225.    Packet Driver, and incoming packets are not dropped.
  226.  
  227. 2. Add support for SLIP (IP over serial links).  A SLIP Packet Driver is
  228.    required, such as that from the Crynwyr (formerly Clarkson) Collection. The
  229.    Crynwyr packet driver SLIP8250 was improved to avoid lost interrupts.  SLIP
  230.    is Packet Driver Class 6.  Kermit changes its internal TCP/IP timers when
  231.    real SLIP is used and thus sends fewer packets than would be expected with
  232.    Ethernet timing.  Packet Driver ETHERSLIP by Michael Martineau also works
  233.    fine.  Etherslip behaves like an Ethernet Packet Driver by internally
  234.    faking ARPs and Ethernet headers; the TCP/IP program thinks it is using
  235.    Ethernet.
  236.  
  237. 3. Add optional argument "port" to command SET PORT TCP host port. Port
  238.    defaults to 23, the Telnet port.  Value 25 is for SMTP mail and is
  239.    forbidden to reduce incidences of faked mail.  Port defaults to 23 unless a
  240.    value is given on the SET PORT TCP/IP command line.
  241.  
  242. 4. Add Telnet server mode. This mode can be invoked two ways.
  243.    a) SET PORT TCP/IP * port. The "*" identifies the connection as accept
  244.    "any client". CONNECT or SERVER or script commands may follow to open
  245.    the communications pathway. Saying Connect forms a terminal to terminal
  246.    connection, not a remote terminal to local DOS connection.
  247.    b) SET PORT TCP/IP, SERVER. Provides Kermit to Kermit file transfers.
  248.    Port 25 is forbidden and will be translated into default port 23.
  249.    Only one client may be served at a time.
  250.  
  251. 5. Add command SET TCP/IP PACKET-DRIVER-INTERRUPT <value> to specify a 
  252.    particular interrupt to be used for a Packet Driver, vs searching for 
  253.    the PD. The operational value is shown on the SHOW COMMUNICATIONS screen.
  254.    Note that if <value> is "ODI" then the ODI driver will be used instead.
  255.  
  256. 6. Revise Telnet Options negotiations to work more smoothly.  Add immediate
  257.    feedback of local-echo status and a much improved algorithm for negotiating
  258.    it (thanks to Frank da Cruz).
  259.  
  260. 7. Add Options report of display size, available if the host requests it, 
  261.    as per RFC-1073.
  262.  
  263. 8. Add command SET TCP/IP TELNET-TERM-TYPE <word> to use this word as the
  264.    terminal type reported to Telnet hosts as a Telnet Option. Otherwise
  265.    Kermit automatically uses one of the following strings matching the 
  266.    current terminal emulation:
  267.    "H-19", "VT52", "VT100", "VT102", "VT220", "VT320", "TEK4014"," VIP7809",
  268.    "PT200", and "UNKNOWN".
  269.  
  270. 9. Add better end-of-line sending when using Telnet.  Always send CR as CR LF,
  271.    and send accumulated material when CR is entered at the keyboard.
  272.  
  273. 10. Remove use of Int 14h to communicate between the internal Telnet and main
  274.     body parts of Kermit. This frees Int 14h for uses such as by a speech
  275.     synthesizer.
  276.  
  277. 11. Speed up the process of obtaining the host IP address from Domain Name
  278.     Servers.
  279.  
  280. 12. Fix protocol code for sending TCP Reset packets.
  281.  
  282. 13. Add reply mechanism for Traceroute requests.
  283.  
  284. 14. Add a workaround for a bug discovered in the combination of Kermit
  285.     over ODIPKT over ODI over an Ethernet board.  The ODI drivers tested
  286.     here corrupt a register (DI) used by the Kermit Telnet C code and 
  287.     that prevented, among other things, resolving host names via a DNS.
  288.     Regular Packet Drivers (including dis_pkt and winpkt) have not shown 
  289.     this fault. Also TCP/IP traffic through the pair of ODIPKT and ODI shows
  290.     high rates of dropped incoming packets before they should get to Kermit;
  291.     the reason is not known.
  292.  
  293. 15. Add a small safety factor in Telnet Options code, as a copy of C-Kermit 
  294.     material by Frank da Cruz.
  295.  
  296. 16. Add full support for ICMP Redirect messages, which arise when two or
  297.     more gateways share the wire with the client, and one tells us to use
  298.     another gateway.
  299.  
  300. 17. By popular demand revise the action of HANGUP to leave modem signal DTR
  301.     off (down) until the port is needed again.
  302.  
  303.    Other communications paths
  304.    --------------------------
  305.  
  306. 1. Revise DEC Pathworks LAT sections to enable use of LAT in expanded memory.
  307.    Also detect Pathworks version 3 and treat it as version 2 rather than 4.
  308.  
  309. 2. Revise Novell Lan WorkPlace for DOS support to work with both v3.5 and
  310.    v4 TELAPI, without the need of a Novell conversion utility.  Two copies
  311.    of Kermit have successfully used TELAPI with MS Windows Enhanced mode.
  312.  
  313. 3. DESQview corrections and enhancements.  Fix two items causing trouble
  314.    with the more recent DESQviews: a stray interrupt problem and keeping EGA
  315.    cursors from being set to mid-character cell.  Add sensitivity to the 
  316.    formal background screen size supported by DV and adjust Kermit's screen 
  317.    accordingly.
  318.  
  319. 4. Revise slightly the sequence of testing IRQ values for serial ports to
  320.    avoid testing IRQ 4 first if COM1 is not the desired port.
  321.  
  322. 5. Add workaround for Interconnections Inc program TES version 2.2 release 8.
  323.  
  324. 6. Add workaround for Western Digital's Packet Driver program 8003PKDR.EXE.
  325.    This program is very very selective about the packet TYPEs it will accept,
  326.    such that a PD version of Novell's IPX (with the BYU shell materials) is
  327.    rejected.  Recommend using the Crynwr (nee Clarkson) PD Collection program
  328.    WD8003E.COM instead.
  329.  
  330. 7. If the user attempts to exit from Kermit while a network connection is
  331.    still active then inform the user and ask for confirmation to proceed.  As
  332.    graceful a network shutdown as reasonable will be done if the exit process
  333.    is to continue.
  334.  
  335. 8. Modify code used to delay between UART chip accesses to work better with 
  336.    the fastest 486 machines.
  337.  
  338.    Terminal emulation
  339.    ------------------
  340.  
  341. 1. Add terminal type of Prime PT200.  This is executed as a VT320 with small
  342.    corrections for the real Prime PT200.  The identification sent to the host 
  343.    is 17 byte string ESCAPE "! ~0 ~..6~C~2 ~$", without the pair of double 
  344.    quotes but with the three embedded spaces.
  345.  
  346. 2. Add command SET TERMINAL OUTPUT-SHIFT {NONE, AUTOMATIC, SI/SO, SS2, SS3},
  347.    default NONE.
  348.    Selects the table shifting commands surrounding a character sent to the 
  349.    host when, and only when, parity is other than none and the character has
  350.    its high bit set.
  351.  
  352.    The idea is to form a virtual 8-bit wide communications channel by sending
  353.    7-bit material telling the host that the data byte came from the right 
  354.    hand (high bit set) side of one of the character sets G1, G2, or G3.  The 
  355.    host must obey ISO 2022 rules and have the same character set loaded into 
  356.    it's right hand table.
  357.  
  358.    Option NONE, the default, says do nothing about the matter and thus the
  359.    character's high bit will be lost and replaced by a parity bit.  The other
  360.    options also lose the high bit but signal the host several ways.
  361.  
  362.    Prefix SI means the following byte comes from set G1, and the character
  363.    is followed by SO which means shift back to G0; these form a triplet.
  364.    Prefix SS2 (ESCAPE N) means the following byte comes from set G2, and
  365.    similarly prefix SS3 (ESCAPE P) means from set G3. SS2 and SS3 are single
  366.    shifts which apply only for the following character.
  367.  
  368.    Option AUTO finds the character set table G1, G2 or G3 being used as the 
  369.    active right half (high bit set) of the complete set and uses SI/SO, SS2,
  370.    or SS3 appropriately. Note that VT300 level terminals use G2 as the
  371.    normal right half set, but VT100 level terminals use G1 but not G2 nor G3.
  372.  
  373. 3. Correctly recognize extended (bold) line drawing patterns for Tek drawing.
  374.  
  375. 4. NOTICE: use of ESC 1 and ESC 2 to enter and leave Tek mode is disabled
  376.    in this release of MS-DOS Kermit.  This pair has multiple uses, depending
  377.    upon who wrote the mainframe Tek program, and we have had reports of
  378.    difficulties when programs use this pair for selecting (against DEC's 
  379.    advise) a DEC Tek mode character set size on VT340 terminals.
  380.  
  381.    File transfer
  382.    -------------
  383.  
  384. 1. Add SET TRANSLATION CHARACTER-SET {READABLE, INVERTIBLE}. The default is
  385.    READABLE. INVERTIBLE is the new form and attempts to use code points as
  386.    much in common between the transfer and file character sets as possible,
  387.    with the transfer character set having priority. Thus Invertible can create
  388.    code points which do not display correctly on the destination machine but
  389.    yield the closest match when a file is sent back to the originator.  Tables
  390.    are from Frank da Cruz and are consistent with C-Kermit and IBM mainframe
  391.    Kermit.
  392.  
  393. 2. Add SET TRANSFER CHARACTER-SET Japanese-EUC, from Hirofumi Fujii. The file
  394.    character set is automatically Katakana or Shift-JIS, based on the contents
  395.    of the file. The transfer (wire) character set is Japanese-EUC. Single and
  396.    double byte codes are supported. The character set identification is
  397.    I14/87/13, in Kermit terminology.
  398.  
  399.    Specifying a File character set of Shift-JIS forces use of Transfer
  400.    character set Japanese-EUC, and vice versa.  Reception of a Japanese-EUC
  401.    file (as denoted in the attributes packets) also changes the file character
  402.    set to Shift-JIS.  IBM Code Page CP932 is used for Shift-JIS.
  403.  
  404. 3. Add SET TRANSFER LOCKING-SHIFT {OFF, ON, FORCED}. Parity setting of other
  405.    than NONE is required to negotiate locking-shifts in file transfers.  The
  406.    default state is ON, but the default parity setting is NONE.  FORCED sends 
  407.    or receives a file with locking-shifts active whether or not the other 
  408.    Kermit agrees and regardless of parity state; beware.
  409.  
  410.    A correlary addition is using ASCII control character DLE to prefix the
  411.    presence of DLE, SI, and SO characters in the data stream.
  412.  
  413.    Locking shifts use byte SO "lock shift" to imply that all following data
  414.    bytes have their high bit set.  Appearance of SI reverses the shift to
  415.    normal, much like Caps Lock on a keyboard.  Thus a lock shift replaces the
  416.    occurence of the 8-bit prefix character before each applicable byte in a
  417.    sequence of them.  High bit prefixing occurs when the communications
  418.    channel is only 7-bits wide; thus with an 8-bit wide channel there is no
  419.    reason to use either prefixes or locking shifts.
  420.  
  421. 4. Create zero-length files if the host sends them.
  422.  
  423. 5. Allow commands SET SEND (and RECEIVE) START-OF-PACKET to use printable
  424.    characters in addition to the normal control characters.  This is to
  425.    accommodate certain IBM mainframe front ends which destroy all control
  426.    characters and thus prevent normal Kermit packets from traveling.  There
  427.    is a warning attached to the help for these commands saying that use of
  428.    printable SOP characters reduces the strength of the protocol.  Avoid
  429.    printable SOP characters if at all possible.  The default SOP character
  430.    remains Control-A.
  431.  
  432. 6. Correct a problem affecting some BBS file downloads. If the remote Kermit
  433.    server thinks the communications line is 8-bits wide, the line is really
  434.    7-bits wide, and the server is given the command SEND filespec, and the
  435.    MS-DOS Kermit client is given the command RECEIVE, then (still there?) make
  436.    sure MS-DOS Kermit requests quoting of bytes with their high bit set by SET
  437.    PARITY to SPACE or MARK etc.  Previous recent MS-DOS Kermit programs would
  438.    not make the request with the above sequence of events and the file
  439.    transfer could fail because of lost high bits.  This effect has been noted
  440.    with Compuserve where MARK parity is needed but the Compuserve Kermit is
  441.    unaware of the situation (why?).  Now the client can force 8-bit quoting.
  442.    Normally both Kermits should be set to the same parity as the
  443.    communications link.
  444.  
  445.     Other Commands
  446.     ---------------
  447.  
  448. 1. Add IF [NOT] INPATH <filename> command. This tests whether the file is
  449.    found in the current directory or in those in the PATH statement.
  450.    IF EXIST <filename> checks only the current directory.
  451.  
  452. 2. Correct TRANSMIT command to wait for handshake character from the host.
  453.    Add SET TRANSMIT PAUSE <value> to wait "pause" milliseconds after sending 
  454.    a line.
  455.  
  456. 3. SET PROMPT <string> now limits the string to 60 bytes rather than letting
  457.    a buffer overflow and damaging other things.
  458.  
  459. 4. Add Script word \L for send a long BREAK in OUTPUT strings. This matches
  460.    \B for a regular length BREAK.  A long BREAK is long only for RS232C
  461.    connections; networks see both as the same (regular) thing.
  462.  
  463. 5. Add keyword "O" as a snyonym for OUTPUT.
  464.  
  465. 6. Add variable \v(terminal) which reports the current terminal type.
  466.  
  467. 7. Prevent command STOP (exit all Take files and macros) from also exiting
  468.    the DOS level command line (which becomes the first internal macro
  469.    upon Kermit startup).
  470.  
  471. 8. Add commands "INCREMENT <variable> <number>" and "DECREMENT <variable>
  472.    <number>".  The default <number> is one.  The variable can be either the
  473.    text subsitution kind, \%<character>, or the name of a Kermit macro; its
  474.    contents must be numeric.  The range of values can be 0..65535.  If either
  475.    end of the range is exceeded the variable is not changed and the command
  476.    returns a status of FAILURE.  If the variable is not numeric the command
  477.    also fails.
  478.  
  479. 9. Keyword DO removed from prompt level "?" help display. The word is archaic
  480.    and the screen space is given to INC/DEC variable.
  481.  
  482. 10. Correct status report from WAIT command when no time interval is given.
  483.  
  484. 11. Close log files when asked to do so, not just when exiting Kermit.
  485.  
  486. 12. Add optional argument "path" to the Patch command, meaning search only 
  487.     that directory for file mskermit.pch. Example: PATCH C:\KERMIT.
  488.  
  489. 13. Modify the way lexical comparison commands IF LLT, IF LGT operate.  Of
  490.     the two strings being compared use the length of the shortest, so that
  491.     "IF LGT d abc echo SUCCESS" will echo "SUCCESS" because d is lexically
  492.     greater than a.  Previously LLT and LGT would fail if the strings lengths
  493.     differed.  IF EQUAL still requires equal lengths strings for success.
  494.  
  495. 14. Add optional numerical argument to the STOP command to return that value
  496.     as the command return status value, \v(status), and place the lower 8 
  497.     bits in Kermit's \v(errorlevel) variable.  For reference, the status
  498.     and errorlevel values generated internally by Kermit are currently:
  499.  
  500.       0    success condition
  501.       1    send file failed
  502.       2    get/receive file failed
  503.       4    Remote command failed
  504.       8    Take file failure
  505.      16    general command failure
  506.     128    user intervention (aka Control-C)
  507.  
  508.     These may occur as summations (they are individual bits in a byte).
  509.  
  510. 15. Add option BLANK-FREE-2 to the command SET BLOCK-CHECK.  This is
  511.     a special case of encoding two-byte checksums so that blank (space)
  512.     characters do not appear as checksum codes.  For use with IBM mainframe
  513.     frontends.  Avoid this choice for normal use.
  514.  
  515. 16. Correct a subtle bug of command STOP not being obeyed in a top-level
  516.     macro or TAKE file if Kermit were invoked with command STAY on the DOS
  517.     command line.  Thanks to Skip Knoble of Penn State for identifying the
  518.     conditions for this to occur.
  519.  
  520. 17. Add processing of the command line submitted to DOS by RUN so that
  521.     literal or \44 numerical commas may be seen by DOS.  Example:
  522.  
  523.       define test run {echo this is a real comma, and a numerical one\44}
  524.  
  525.     The RUN command was an exception to the rule on such processing.
  526.  
  527. 18. (there is no 18)
  528.  
  529. 19. Modify the GOTO script command to sense Control-C to break out of
  530.     loops without also consuming other keystrokes.  Now if other characters
  531.     are typed and a break out is necessary then type Control-Break so that
  532.     typeahead is flushed and the implicit Control-C is observed.
  533.  
  534. 20. Append a backslash, \, to the end of the \v(directory) variable string
  535.     if one is not already present. This will permit forming a full filename
  536.     using Kermit string substitution variables such as \v(dir)myfile.txt.
  537.  
  538.    Microsoft Windows
  539.    -----------------
  540.  
  541. 1. Packet Driver shim WINPKT was made available to act as a second Packet
  542.    Driver to interface between the real PD and applications running in
  543.    Windows.  WINPKT is able to recognize the Windows Enhanced mode virtual
  544.    machine in which the program is running and to invoke that machine before
  545.    delivering a packet to the program.  This eliminates the need to "fix task
  546.    in memory" in its PIF file and eliminates the Crynwr (nee Clarkson) PD
  547.    command argument "-w".  The latter simply rejects a packet if the program
  548.    is not immediately active.  WINPKT was originally written by Roger F. James
  549.    and was revised by Joe Doupnik.  The mechanisms will also appear in the
  550.    next edition of the shim DIS_PKT (PD interface while using NDIS) from Joe
  551.    Doupnik.
  552.  
  553.    My special thanks for assistance, contributions, and suggestions from
  554.     Frank da Cruz, Hirofumi Fujii, John Chandler, James Sturdevant,
  555.     Andre Asselin, Jim Fregin, Jim Reisert, Rick Sladkey, Richard Stanton,
  556.     Bertil Stenstrom, Konstantin Vinogradov, Robert Weiner;
  557.     and from companies:
  558.     Digital Equipment Corporation, Quarterdeck Online Systems, Novell,
  559.     AT&T, and Interconnections.
  560.  
  561. (End of MSR312.UPD)
  562.