home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / mskermit / msk315.txt < prev    next >
Text File  |  2020-01-01  |  16KB  |  407 lines

  1. Changes and updates to MS-DOS Kermit v3.15, as compared to v3.14
  2.  
  3. -----------------------------------
  4. Second test version, 11 August 1996:
  5.  
  6. Corrections to reported bugs:
  7.  o STOP <digit> string now properly displays the string.  The DIAL command
  8.    uses this syntax when the dialing script is not found.
  9.  o SET PROMPT allows \numbers again.
  10.  o INPUT <timeout> single-byte no longer hangs in an infinite loop.
  11.  o MINPUT <timeout> {string} {another string} ... 
  12.    now properly recognizes each string.
  13.  o \v(minput) now properly reports the index of the string matched by MINPUT.
  14.  o Loss of modem Carrier Detect may now be recognized promptly during file 
  15.    transfers, but the changes are untested.  Probably more work is needed.
  16.  o \$(DOS Environment variable) now finds both uppercase and lower case
  17.    variables, but not mixed case variables.  Windows 3.1x creates variable
  18.    "windir" in lower case, as can be observed within the DOS box, so this is
  19.    a way for MS-DOS Kermit to check whether it is running under Windows 3.x.
  20.  
  21. Additional features:
  22.  o \fchecksum(string) yields the decimal value of the 32-bit unsigned sum
  23.    of the code values of each byte in string, e.g. \fcheck(ABCD) = 266.
  24.  o SET TCP ADDRESS has new option, DHCP, as a synomym for BOOTP.
  25.  o SET TCP ADDRESS DHCP or BOOTP  both try DHCP negotiation and accept
  26.    the first response of possibly many, whether DHCP or Bootp responses.
  27.    Special note for users of Novell's DHCPSRVR.NLM server v2.0: 
  28.    use  SET TCP BROADCAST 255.255.255.255  to avoid a bug in that server
  29.    which is triggered by using a directed broadcast address.
  30.  
  31. Question on a requested enhancement:
  32.    TCP/IP SOCKS support requires a choice of authentication mechanism.
  33.    People asking for SOCKS support need to tell us which mechanism they 
  34.    require since one needs to be written into the code. The two choices are
  35.    no authentication and plaintext username/password, neither of which
  36.    provides any security, and the latter is a big security hole.
  37.  
  38. --------------------------------
  39. First test version, 18 July 1996:
  40.  
  41. ERROR CORRECTIONS
  42.  
  43. 1. All patches issued for MS-DOS Kermit version 3.14 are incorporated into
  44.    version 3.15
  45.  
  46. 2. Unpatchable problem with ARP affecting some remote hosts is fixed in
  47.    version 3.15
  48.  
  49. 3. Unpatchable bug which prevented communications between LAN adapters from
  50.    the same vendor (the first three octets of the hardware address were the
  51.    same), fixed in version 3.15
  52.  
  53. 4. Correction of a fatal bug when using internal TCP/IP over ARCnet ODI
  54.    drivers.
  55.  
  56. 5. Failure to act upon 8-bit control codes SS2 and SS3 in VT220/320 terminal
  57.    emulation, even though their 7-bit equivalents were implemented.
  58.  
  59. FILE TRANSFER IMPROVEMENTS
  60.  
  61. Kermit file transfer protocol and TCP/IP internal protocol stack:
  62.  
  63. 1. Dynamic Kermit packet retry timing, based on measured round trip times.
  64.    This should provide faster recovery from lost packets.
  65.  
  66. 2. Congestion avoidance strategy during packet transmission.  Both (1) and
  67.    (2) are directly from TCP/IP rules and procedures by Van Jacobson.  This
  68.    should improve performance on busy comms lines of all kinds.
  69.  
  70. 3. Improved timing of IP packets within the internal TCP/IP stack, to deal
  71.    with today's steadily deteriorating Internet performance.
  72.  
  73. 4. Improvement of TCP keepalive probe detection techniques, to keep Telnet
  74.    connections alive forever even if no user activity occurs.
  75.  
  76. 5. Optional announcement in Kermit packets of the kind of operating system
  77.    so that two alike systems would exchange files in BINARY mode
  78.    automatically, and without filename conversion.  The new command:
  79.  
  80.      SET TRANSFER MODE { AUTOMATIC, MANUAL }
  81.  
  82.    controls this feature, with the default being MANUAL for no announcement.
  83.    If the "sysid" mode is used it overrides user choice of binary or text
  84.    mode file transfers when like systems converse.  Works with C-Kermit
  85.    16.0.192 (in Beta), Kermit 95 1.1.5 or later, IBM Mainframe Kermit 4.3.2
  86.    (soon to be announced), and of course MS-DOS Kermit 3.15 itself.
  87.  
  88. 6. Automatic recognition of Kermit packets while in terminal emulation
  89.    mode.  See next section.
  90.  
  91. TERMINAL EMULATION IMPROVEMENTS
  92.  
  93. 1. Kermit can now use extended memory (raw memory above 1MB) in place of
  94.    expanded memory for screen rollback space. The command below has been
  95.    enhanced to include choices EXTENDED and EXPANDED.
  96.  
  97.      SET TERMINAL EXPANDED-MEMORY { OFF, EXPANDED, EXTENDED, ON }
  98.  
  99.    The default is ON, which means try expanded memory first, and if that
  100.    fails then try extended.  With Extended in use Kermit does not need an
  101.    expanded memory page frame (located in UMB memory).  The default ON
  102.    results in operation the same as for version 3.14 of MS-DOS Kermit.
  103.  
  104. 2. Automatic recognition of incoming Kermit packets while in terminal
  105.    emulation mode.  The new command:
  106.  
  107.      SET TERMINAL AUTODOWNLOAD { ON, OFF } 
  108.  
  109.    controls this feature, with the default being ON.  When the remote host
  110.    sends a Kermit "I" or "S" packet to initiate a file transfer in either
  111.    direction (via a SEND or GET command) then MS-DOS Kermit switches to file
  112.    transfer mode, performs the file transfer, then returns to CONNECT mode.
  113.  
  114.    To download a file, just tell the remote Kermit to send it, e.g. (for
  115.    C-Kermit on the remote end):
  116.  
  117.      kermit -s <filespec>          ; To download in text mode
  118.      kermit -is <filespec>         ; To download in binary mode
  119.  
  120.    or (at the Kermit prompt):
  121.  
  122.      C-Kermit> set file type text  ; (or "binary")
  123.      C-Kermit> send <filespec>
  124.  
  125.    To upload a file, tell the remote Kermit to GET it, e.g.:
  126.  
  127.      kermit -g <pc-filespec>       ; To upload in text mode 
  128.      kermit -ig <pc-filespec>      ; To upload in binary mode 
  129.  
  130.    or:
  131.  
  132.      C-Kermit> set file type text  ; (or "binary")
  133.      C-Kermit> get <pc-filespec>
  134.  
  135. 3. The Compose Key (verb \Kcompose, assigned by default to Alt-c) now
  136.    works not only for Latin-1 (Western European) character sets, but also
  137.    Latin-1 (Eastern European) character sets.  Latin-2 compose sequences
  138.    are accepted when your local code page is CP852 and your terminal
  139.    character-set is Latin-2; otherwise, Latin-1 sequences are used, as
  140.    before.  See Appendix I.
  141.  
  142. SCRIPT PROGRAMMING IMPROVEMENTS
  143.  
  144. 1. New command functions, \fname(arguments):
  145.  
  146.    \frindex(pattern,string,position)
  147.      Right Index.  Returns 1-based position of first occurrence of pattern in
  148.      string, looking from right to left, starting "position" bytes from from
  149.      the right (default position is 0).  Returns 0 if pattern not found.
  150.  
  151.    \feval(math expression)
  152.      Returns numerical result of a math expression.
  153.      Numbers are 32-bit signed integers in calculations.
  154.      Math operators are:
  155.  
  156.        +, -, *, /  Add, subtract, multiply, divide
  157.        + and - are also unary operators
  158.  
  159.        %  modulo, remainder
  160.        ^  exponent, to power of 
  161.        !  factorial
  162.        ~  logical bit-wise NOT, one's complement
  163.        &  bit-wise AND 
  164.        |  bit-wise OR
  165.        #  bit-wise Exclusive-OR 
  166.        @  Greatest Common Divisor 
  167.       ( ) Clustering symbols, to 8 deep.
  168.  
  169.    \fipaddr(string)
  170.      Returns IP address in dotted decimal form found within string.  Can
  171.      be used with \v(input) to obtain IP address during SLIP login.
  172.  
  173.    \ftod2secs(hh:mm:ss)
  174.      Converts hours:minutes:seconds to seconds.
  175.  
  176.    \fverify(pattern, string, offset)
  177.      Checks that all characters in string are in pattern, starting search at
  178.      offset of string.  Returns 0 if all match, else 1-based position of first
  179.      mismatch in string.
  180.  
  181.    Function names may be abbreviated to uniqueness, such as \fmin().
  182.  
  183. 2. Mathmatical expressions, such as (1992+3*3-5), can be used almost
  184.    everywhere to represent a single numercial value.  The rules of what 
  185.    is an expression are the same as for \feval() and follow common usage.
  186.    If spaces occur then use ( ) around the entire expression.
  187.  
  188.    Numbers can be expressed as implicit decimal, 1996, or have a base
  189.    associated with them such as \x1b for hexadecimal (27 dec).  Numbers 
  190.    may be signed and results are retained to 32-bits.
  191.  
  192.    Single byte numerical values, \x1b, are permitted in text strings and
  193.    represent one byte.  To use backslash as itself double it, \\.  Note 
  194.    that a number may terminate from its value filling a byte.  For example:
  195.  
  196.      ECHO testing \12345   
  197.  
  198.    produces:
  199.  
  200.      testing {45  
  201.  
  202.    because \123 makes a full byte (visually a left curly brace).
  203.  
  204. 3. To assist the CD, DIR, and RUN commands single byte \number conversion no
  205.    longer occurs.  Thus one may now safely say CD \4DOS.
  206.  
  207. 4. Command word spelling may be composed on the fly from substitution
  208.    variables, such as 
  209.  
  210.     define \%a minal
  211.     set ter\%a type vt320
  212.  
  213.    This concept is extended to spelling of \function names, labels,
  214.    and even the names of substitution variables themselves.
  215.  
  216. 5. Substitution variables now support the notion of arrays of strings:
  217.  
  218.    DECLARE \&<char>[size]
  219.      Allocates space for "size" number of strings. If size is 0 then the
  220.      structure becomes undefined.
  221.  
  222.    \&<char>[index]
  223.      Is member index of the array <char>.  Use DEFINE or ASSIGN to create the
  224.      array member.  Index starts at 1 and should not exceed the declared
  225.      "size."  Strings are limited in length to 1KB which is the limit of a
  226.      Kermit command. Not all members need be created, only the ones you
  227.      wish. An empty definition removes that member.
  228.  
  229. 6. Multiple match patterns for script INPUT statements, via new command
  230.  
  231.        MINPUT <optional timeout> pattern1 patttern2 pattern3...
  232.  
  233.    This behaves the same as INPUT except each of the patterns is examined
  234.    and the first match terminates the command.  Patterns containing spaces
  235.    should be placed within curly braces, e.g. {three word pattern}.  The
  236.    pattern which is matched is revealed in new variable \v(minput): 1
  237.    if the first one was matched, two if the second, and so on, or 0 if
  238.    none were matched.
  239.  
  240.      NOTE: For compatibility with C-Kermit, the optional timeout in the
  241.      MINPUT, INPUT, and REINPUT commands, should always be included.
  242.  
  243. 7. New variables:
  244.  
  245.    \v(instatus)
  246.      Status of most recent INPUT or MINPUT command:
  247.       -1 for not initialized yet
  248.        0 for success
  249.        1 for timed out
  250.        2 for user level Control-C interrupt
  251.        4 for connection lost
  252.  
  253.    \v(minput)
  254.      Shows which search pattern was matched by the MINPUT command, which
  255.      is a script INPUT command with one or more match patterns.  The 
  256.      variable is 0 if no match was obtained.
  257.  
  258.     \v(return)
  259.      The text string given by a "RETURN string" command. See RETURN below.
  260.  
  261.     \v(input)
  262.      This is the contents of the INPUT command buffer, but with two changes
  263.      from version 3.14.  Now \v(input) is the entire buffer rather than up to
  264.      the first Carriage Return, and control codes are retained intact (and
  265.      thus are invisble). To see the control codes visually use command
  266.      SHOW SCRIPT where controls are displayed in "caret-character" notation
  267.      such that null is ^@, 1 is ^A, 2 is ^B and so on.
  268.  
  269. 8. Program control functions FOR, WHILE, XIF, ELSE.  They are:
  270.  
  271.      FOR <variable-name> <start> <end> <increment> { <command>, ... }
  272.  
  273.      WHILE <logical-test> { <command>, ... }
  274.  
  275.      XIF <logical-test> { <command>, ... } ELSE { <command>, ... }
  276.  
  277.      IF <logical-test> <command>
  278.      ELSE <command>
  279.  
  280.    where:
  281.  
  282.    <variable-name> 
  283.      Is a substitution variable, \%<character>, which holds the loop index;
  284.      <start>, <end>, and <increment> are numbers, and yes, loops can run
  285.      backward by using negative increments.
  286.  
  287.    <command>
  288.      Is any MS-DOS Kermit command.
  289.  
  290.    { <command>, ... }
  291.      Is curly braces surrounding one or more Kermit commands, with commands
  292.      separated by commas to represent end of line, or multiple lines of Kermit
  293.      commands where the physical end of line acts automatically as a command
  294.      terminator.  A side effect of this is commands using { will be continued
  295.      automatically by the next line until a closing } is encountered; each
  296.      input line will have a comma prepended.
  297.  
  298.    <logical-test> is any of the IF statement tests.
  299.  
  300.    XIF may have the ELSE word in the middle of a command line, but ELSE must
  301.    not be a separate command line. Only the IF statement uses ELSE as a
  302.    separate command line (see below).
  303.  
  304.    The IF statement has been extended to allow an optional second line of ELSE
  305.    Kermit command.  ELSE must be at the start of the next line rather than on
  306.    the same line as the IF main body.
  307.  
  308.    BREAK terminates a FOR or WHILE loop. Control resumes at the next outer
  309.    statement, if any.
  310.  
  311.    CONTINUE continues FOR and WHILE statements the at the bottom, skipping
  312.    statements between itself and the bottom of the loop.
  313.  
  314.    These statements may be nested.
  315.  
  316. 9. RETURN string
  317.  
  318.     Used by macros to return "string" to new variable \v(return) and then
  319.     terminate the macro. Termination is otherwise the same as by POP or END.
  320.  
  321. 10. SETENV name=string
  322.  
  323.     Puts NAME=string into the DOS master environment.
  324.     Example script sequence:
  325.     input 10 Your IP number today is
  326.     input 10 Please record it now.
  327.     setenv myip=\fipaddr(\v(input))
  328.  
  329.     where the remote machine sends "Your IP number today is 123.111.222.123.
  330.     Please record it now." The DOS master enviroment would have the new
  331.     line "MYIP=123.111.222.123" at the end.
  332.  
  333.     Note that changing the master environment does not affect the copy
  334.     existing within Kermit nor any processes launched while in Kermit.
  335.  
  336. APPENDIX I: LATIN-2 COMPOSE SEQUENCES
  337.  
  338. Accented Letters.
  339. Enter in the desired case (upper or lower).
  340. Key 1 (K1) and Key 2 (K2) can be entered in either order.
  341.  
  342. Character Name          K1   K2
  343.  
  344. A acute                 A    '
  345. A breve                 A    %
  346. A circumflex            A    ^
  347. A diaeresis             A    "
  348. A ogonek                A    =
  349. C acute                 C    '
  350. C caron                 C    &
  351. C cedilla               C    ,
  352. D caron                 D    &
  353. D stroke                D    -
  354. E acute                 E    '
  355. E caron                 E    &
  356. E diaeresis             E    "
  357. E ogonek                E    =
  358. I acute                 I    '
  359. I circumflex            I    ^
  360. L acute                 L    '
  361. L caron                 L    &
  362. L with stroke           L    /
  363. N acute                 N    '
  364. N caron                 N    &
  365. O acute                 O    '
  366. O circumflex            O    ^
  367. O diaeresis             O    "
  368. O double acute          O    #
  369. R acute                 R    '
  370. R caron                 R    &
  371. S acute                 S    '
  372. S caron                 S    &
  373. S cedilla               S    ,
  374. T caron                 T    &
  375. T cedilla               T    ,
  376. U acute                 U    '
  377. U diaeresis             U    "
  378. U double acute          U    #
  379. U ring                  U    *
  380. Y acute                 Y    '
  381. Z acute                 Z    '
  382. Z caron                 Z    &
  383. Z dot above             Z    .
  384.  
  385. ss (German sharp s)     s    s  (lowercase only)
  386.  
  387. Accents and special characters; enter K1 and K2 in the order shown:
  388.  
  389. Character Name          K1   K2
  390.  
  391. Acute accent            '    '   (two apostrophes)
  392. Breve                   %    %   (two percent signs)
  393. Caron                   &    &   (two ampersands)
  394. Cedilla                 ,    ,   (two commas)
  395. Currency sign           X    0   (or X O, or x 0, or x o)
  396. Degree sign             0    ^   (zero and circumflex)
  397. Diaeresis               :    :   (two colons)
  398. Division sign           -    :   (hyphen and colon)
  399. Dot above               .    .   (two periods)
  400. Double acute            #    #   (two number or pound signs)
  401. Multiplication sign     X    X   (or x x)
  402. Ogonek                  =    =   (two equal signs)
  403. Paragraph sign          S    !   (or S 0 or S O, upper or lower case)
  404. Soft hyphen             -    -   (two hyphens)
  405.  
  406. (End)
  407.