home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 3 Comm / 03-Comm.zip / cko191.zip / ckermit.inf (.txt) < prev    next >
OS/2 Help File  |  1995-05-16  |  258KB  |  6,473 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Welcome ΓòÉΓòÉΓòÉ
  3.  
  4.  
  5. ΓòÉΓòÉΓòÉ 1.1. Introduction ΓòÉΓòÉΓòÉ
  6.  
  7.  
  8. Welcome to OS/2 C-Kermit 5A(191), full-function 32-bit native communication 
  9. software for your OS/2 system from Columbia University, offering terminal 
  10. emulation, file transfer, script programming, and international character-set 
  11. conversion for both serial and network connections. 
  12.  
  13. The documentation for C-Kermit is the book, Using C-Kermit. If you are using 
  14. C-Kermit software, please purchase the book if you haven't done so already. It 
  15. teaches how to use the software effectively, how to get the most out of it, and 
  16. how to take advantage of its advanced features.  Book sales provide most of the 
  17. income that pays for the Kermit project, a unique nonprofit worldwide 
  18. cooperative software development effort. 
  19.  
  20. Kermit software is protected by copyright.  It is not in the public domain. 
  21. Please read the copyright notice and licensing information. 
  22.  
  23. This file describes the changes made to OS/2 C-Kermit since version 5A(188) was 
  24. released and the first edition of Using C-Kermit was published to accompany it 
  25. in early 1993.  Also incorporated are numerous hints  & tips and questions & 
  26. answers arising from years of help-desk experience.  This INFO file applies to 
  27. version 5A(191) of OS/2 C-Kermit, released March 1995.  This file is a 
  28. supplement to, and not a replacement for, Using C-Kermit. 
  29.  
  30. This file was written by: 
  31.  
  32.         Frank da Cruz, Christine M. Gianone, and Jeffrey Altman, Columbia 
  33.         University, New York City, March 1995. 
  34.  
  35.  Acknowledgements and thanks to Kai Uwe Rommel, ARS Computer and Consulting 
  36.  GmbH, M╨ænchen, Germany, and to Dave Bolen for some of the information herein. 
  37.  
  38.  
  39. ΓòÉΓòÉΓòÉ 1.2. OS/2 Environment ΓòÉΓòÉΓòÉ
  40.  
  41. OS/2 C-Kermit 5A(191) is available only as a 32-bit application for OS/2 2.00 
  42. and later.  Version 5A(190) was the last version produced in a 16-bit version. 
  43. The 32-bit version is designed to take advantage of OS/2 2.x and Warp features 
  44. including: 
  45.  
  46.      Multiple threads for efficient task scheduling and low CPU load 
  47.      Fast semaphores for intraprocess communication 
  48.      HPFS 
  49.      Extended attributes 
  50.      Sizeable terminal screen (Warp only) 
  51.      VIO session mouse support 
  52.      TCP/IP, NETBIOS, DECnet, and Named Pipes networking methods 
  53.      LAN Server remote modems 
  54.      PM Clipboard 
  55.      High-speed asynchronus communication services 
  56.      REXX language interface 
  57.  
  58.  And all of C-Kermit's file transfer, terminal emulation, script programming, 
  59.  and character-set conversion features. 
  60.  
  61.  The 16-bit version lacks certain features of the 32-bit version due to 
  62.  architectural or compiler limitations: various printer operations, the REXX 
  63.  programming interface, SET FILE TYPE LABELED (for OS/2 Extended Attributes), 
  64.  mouse support, Named Pipe support, NETBIOS networking, loadable fonts, 
  65.  performance improvements, etc. 
  66.  
  67.  The 32-bit version should be used with OS/2 2.x and Warp.  The 16-bit version 
  68.  is for use on OS/2 1.x systems. 
  69.  
  70.  
  71. ΓòÉΓòÉΓòÉ 1.3. Copyright Notice ΓòÉΓòÉΓòÉ
  72.  
  73. Copyright (C) 1985, 1995, Trustees of Columbia University in the City of New 
  74. York.  The C-Kermit software may not be, in whole or in part, licensed or sold 
  75. for profit as a software product itself, nor may it be included in or 
  76. distributed with commercial products or otherwise distributed by commercial 
  77. concerns to their clients or customers without written permission of the Office 
  78. of Kermit Development and Distribution, Columbia University. This copyright 
  79. notice must not be removed, altered, or obscured. 
  80.  
  81.  
  82. ΓòÉΓòÉΓòÉ 1.4. Licensing ΓòÉΓòÉΓòÉ
  83.  
  84. C-Kermit software is distributed by Columbia University and its licensees. 
  85. Kermit software may not be resold or otherwise provided to customers or clients 
  86. of commercial enterprises, or included with any product (including CD-ROM 
  87. software collections), without the written permission of Columbia University. 
  88.  
  89. Large institutional and corporate users of Kermit software are encouraged to 
  90. help support our efforts by purchasing adequate copies of the manuals and/or 
  91. making tax-deductible contributions, and are requested to provide their own 
  92. internal technical support (which may liaison with ours) rather than sending 
  93. all of their users straight to us for help. CLICK HERE for further information 
  94. about technical support. 
  95.  
  96. Contact Columbia University for further information about licensing and 
  97. quantity discounts. 
  98.  
  99.  
  100. ΓòÉΓòÉΓòÉ 2. C-Kermit Documentation ΓòÉΓòÉΓòÉ
  101.  
  102. The user manual for C-Kermit 5A is the book: 
  103.  
  104.    Using C-Kermit  by Frank da Cruz and Christine M. Gianone, published by 
  105.    Digital Press / Butterworth-Heinemann, Woburn, MA, USA, 1993, 514 pages, 
  106.    ISBN 1-55558-108-0. 
  107.  
  108.  Using C-Kermit contains thorough step-by-step instructions, examples, 
  109.  illustrations, tutorials, reference material, tables, a bibliography, and a 
  110.  comprehensive index.  It shows you how to hook up, get online, interact with 
  111.  dialup and network hosts and services, upload and download files, achieve 
  112.  maximum efficiency, access text in many languages, and how to automate all 
  113.  your routine communications tasks. 
  114.  
  115.  If you do not have this book, please order it. You may use the enclosed order 
  116.  form. The book will show get the most out of your Kermit software. It will 
  117.  answer your questions and give you ideas. And remember, book sales are the 
  118.  major source of funding for the Kermit project. 
  119.  
  120.  This INFO file is a supplement to, and not a replacement for, Using C-Kermit, 
  121.  concentrating on the OS/2-particular aspects of C-Kermit, and describing 
  122.  features that were added recently. 
  123.  
  124.  Using C-Kermit is available in computer bookstores or directly from Columbia 
  125.  University. To order from Columbia University, use the order form. 
  126.  
  127.  You can also order by phone from the publisher, Digital Press / 
  128.  Butterworth-Heinemann, with MasterCard, Visa, or American Express: 
  129.  
  130.         +1 800 366-2665 (Woburn, Massachusetts office for USA & Canada) 
  131.         +44 1993 414414 (Rushden, England office for Europe) 
  132.         +61 2 372-5511  (Chatswood, NSW office for Australia & New Zealand) 
  133.         +65 220-3684   (Singapore office for Asia) 
  134.  
  135.  A German-language edition is also available: 
  136.  
  137.    C-Kermit-Einf╨æhrung und Referenz, Frank da Cruz and Christine M. Gianone, 
  138.    Verlag Heinz Heise, Hannover, Germany (1994). ISBN 3-88229-023-4.  Deutsch 
  139.    von Gisbert W. Selke.  Price: DM 88,00. Verlag Heinz Heise GmbH & Co. KG, 
  140.    Helstorfer Strasse 7, D-30625 Hannover. 
  141.    Tel. +49 (05 11) 53 52-0, Fax. +49 (05 11) 53 53-1 29. 
  142.  
  143.  
  144. ΓòÉΓòÉΓòÉ 2.1. Documentation Order Form ΓòÉΓòÉΓòÉ
  145.  
  146. _______________________________________________________________________ 
  147.  
  148. OS/2 C-KERMIT DOCUMENTATION ORDER FORM 
  149.  
  150. Using C-Kermit, by Frank da Cruz and Christine M. Gianone, Digital Press / 
  151. Butterworth-Heinemann, 1993.  504 pages. 
  152.  
  153. Payment in US dollars: 
  154.    USA, Canada, and Mexico: $36.95. 
  155.    Elsewhere: $47.00. 
  156.  
  157.  Price includes shipping.  Do not add sales tax. 
  158.  
  159.   _______________________________________________________________________
  160.  
  161.   ________ Book Using C-Kermit, $36.95 / $47  . . . . . . . . $__________
  162.   Quantity
  163.  
  164.   You may pay by (1) credit card or (2) check:
  165.   _______________________________________________________________________
  166.   1.  PAYMENT BY CREDIT CARD
  167.  
  168.   [ ] MasterCard [ ] Visa   AMOUNT OF YOUR PAYMENT. . . . . . $__________
  169.  
  170.   Card Holder______________________________   Today's Date ______________
  171.  
  172.   Card Number _____________________________   Expiration Date ___________
  173.  
  174.   _______________________________________________________________________
  175.   2.  PAYMENT BY CHECK
  176.  
  177.   [  ] If your check will not be drawn on a USA bank, please add $35.00
  178.        check-cashing fee.
  179.  
  180.   TOTAL AMOUNT OF YOUR CHECK  . . . . . . . . . . . . . . . . $__________
  181.  
  182.   Please make your check payable to:
  183.  
  184.     Columbia University Kermit Distribution
  185.  
  186.   _______________________________________________________________________
  187.   SHIPPING INFORMATION
  188.  
  189.   Name __________________________________________________________________
  190.  
  191.   Organization __________________________________________________________
  192.  
  193.   Address _______________________________________________________________
  194.  
  195.   City ______________________________ State/Province ____________________
  196.  
  197.   ZIP or Postal Code ________________ Country ___________________________
  198.  
  199.   Telephone and/or E-mail _______________________________________________
  200.  
  201.   _______________________________________________________________________
  202.  Return this form by e-mail to kermit@columbia.edu, 
  203.  by fax to +1 212 663-8202, 
  204.  or by post to: 
  205.  
  206.       Kermit Distribution
  207.       Columbia University
  208.       612 West 115th Street
  209.       New York NY  10025-7721
  210.       USA
  211.  
  212.   _______________________________________________________________________
  213.   (End)                                                      (Thank you!)
  214.  
  215.  
  216. ΓòÉΓòÉΓòÉ 2.2. Errata & Corrigenda ΓòÉΓòÉΓòÉ
  217.  
  218. The following errors in Using C-Kermit (first edition, English, first printing) 
  219. have been noted, most of them by Gisbert W. Selke, while translating the book 
  220. into German: 
  221.  
  222.  PAGE       REMARKS 
  223.   xviii     Fridrik Skulason's name is spelled with an eth, not a d. 
  224.   xx        Ditto. 
  225.   13-14     The list of systems supported by C-Kermit is not exhaustive. New 
  226.             systems discovered since the printing date are listed in the file 
  227.             CKCxxx.UPD, where xxx is the current edit number, e.g. 190. 
  228.   46        The SET CARRIER description says that it doesn't take effect until 
  229.             the next SET LINE command.  In fact, it can have an effect at 
  230.             certain other times too, such as when you issue any 
  231.             communication-oriented command that changes the communication 
  232.             device modes.  The SET CARRIER AUTO description should say: 
  233.             "Requires carrier during CONNECT, TRANSMIT, INPUT, OUTPUT, and 
  234.             SCRIPT commands, but not during DIAL operations or file transfer." 
  235.             These fine distinctions in SET CARRIER operation apply mainly to 
  236.             System-V or POSIX based UNIX C-Kermit implementations and OS/2 
  237.             C-Kermit, but (in general) not to others. 
  238.   53        Table 3-2, HST-COURIER, contains extraneous typesetting information 
  239.             ("Courier10PitchBT-Roman").  (This probably happened because an 
  240.             error-correcting protocol was not used to download the final 
  241.             PostScript to the printer :-)  Two new modem types, COURIER and 
  242.             SPORTSTER have been added, which are the same as HST-COURIER.  The 
  243.             description should say "US Robotics modems". 
  244.   85        The command in the final line in the example, "send olga It's 
  245.             765-4321", should be underlined. 
  246.   91        SET KEY CLEAR added in 5A(190), restores default key mapping. 
  247.   93         The description of SET SESSION-LOG fails to mention that XON and 
  248.             XOFF are removed from a text-mode session log. 
  249.  101        In the HINT inset, the words SEND and RECEIVE should be exchanged. 
  250.  144        In REMOTE CD [ directory ] description, the brackets should be in 
  251.             italics. 
  252.  145        There should be no right parenthesis in REMOTE DIRECTORY [ 
  253.             filespec) ]. 
  254.  150        "Now start C-Kermit on the VAX..." should say "Now start C-Kermit 
  255.             on the UNIX system..." 
  256.  164        The description of compression predates the new SET REPEAT command, 
  257.             described below. 
  258.  172         Table 9-2.  The text fails to mention that the Chinese Roman, 
  259.             Icelandic, and Japanese Roman sets are not used by C-Kermit. All 
  260.             nine occurrences of accent acute (') by itself in column 6/00 
  261.             should be accent grave (`).  Column 7/14 for Norwegian should show 
  262.             macron (overline) rather than vertical bar. 
  263.  174        Table 9-4, row 03, column 13 should be O-acute, not O-grave. 
  264.  178        Next-to-last paragraph: "rlogin -8", not "rsh -8". 
  265.  185        C-Kermit>set unknown-char-set (not "sent unknown-char-set"). 
  266.  189        The description of JIS X 0201 says that it differs from a Latin 
  267.             Alphabet in that the right half has some empty positions. Some 
  268.             Latin Alphabets (e.g. Latin/Hebrew) also have empty positions. 
  269.  195        Second example: "type diab.asc" instead of "type diab.lat". 
  270.  197        6th line from bottom: MSCUSTOM.INI, not MSKERMIT.INI. 
  271.  203        Examples should say XM (XMIT) rather than XF (XFER). 
  272.  215        Example should say "duplex" rather than "duplux". 
  273.  226        \m() variables are really not like \%a-style global variables, in 
  274.             that the do not get recursively evaluated - on the literal 
  275.             definition is returned. 
  276.  239        Line 3: "secret" should be "oofa". Middle paragraph, material 
  277.             beginning "In these commands, literal strings to be compared must 
  278.             not contain any spaces..."  As of version 5A(190), this is no 
  279.             longer true.  Multiple words can be grouped together within braces, 
  280.             e.g. "if equal {\%a} {here are four words} echo ok" 
  281.  242        First line should have no comma at the end. 
  282.  246        Description of label syntax should state that in a macro 
  283.             definition, labels are set off by commas. 
  284.  249        In the syntax description of the FOR command, the words "initial", 
  285.             "final", and "increment" should be in italics, and there should be 
  286.             no right angle bracket (>) following the word "increment".  Also, 
  287.             the description of the FOR command fails to state explicitly that 
  288.             the increment can be negative for counting backwards, in which case 
  289.             the completion test is that the variable becomes less than the 
  290.             final value, not greater than the final value.  Also, the book does 
  291.             not mention that the value of the loop variable can be changed by 
  292.             the commands in the loop contents, and this will affect the 
  293.             execution of the loop. 
  294.  250        In the wakeup-call example, the tests should be "if llt" rather 
  295.             than "if not lgt". 
  296.  252        Comments on the example should say "third is smaller or equal". 
  297.  252        Text fails to mention that functions can not change their arguments 
  298.             (i.e. arguments are passed by value). 
  299.  254        \Flower() and \Fupper() functions only work correctly on 7-bit 
  300.             ASCII letters. 
  301.  258        Table 12-2, operator |.  Example should say \%a | 4 gives value 6. 
  302.  264        Table 12-3, entry "double width line" should be \27#6, not \27#4. 
  303.  264        Table 12-3, entry "set scrolling region" should refer to top row, 
  304.             bottom row; not to row, column. 
  305.  264        Table 12-3, entry "Stops transparent printing", Kermit Notation 
  306.             column, should say "\27[4i", not "\27[0i". 
  307.  264        Table 12-3, entry "Starts transparent printing", Kermit Notation 
  308.             column, should say "\27[5i", not "\27[0i". 
  309.  264        Table 12-3, entry "VT200 ID" should say "ESC [ 62c", not "ESC [ 
  310.             6c". 
  311.  264        Table 12-3, entry "VT300 ID" should say "ESC [ 63c", not "ESC [ 
  312.             6c". 
  313.  266-267    The section File Transfer Shortcuts does not apply to file transfer 
  314.             with MS-DOS Kermit 3.13 or later.  The escape sequences associated 
  315.             with the TERMINALR and TERMINALS macros in MS-DOS Kermit 3.12 and 
  316.             earlier are now used for changing screen-writing direction during 
  317.             terminal emulation, as on real DEC Hebrew VT terminals.  See the 
  318.             MS-DOS Kermit 3.13 update notes (KERMIT.UPD) for detailed 
  319.             information. 
  320.  267        The description of the RETURN command says it may not be used in 
  321.             the command list of a FOR, WHILE, or XIF command.  As of edit 190, 
  322.             this is no longer the case. 
  323.  268        Carl, not Karl, Friedrich Gauss. 
  324.  269        The OPEN !READ command example for VMS should use /EXCLUDE= rather 
  325.             than /EXCEPT=. 
  326.  272        Line 14 of example should say "if = \%n \%d", not "if = \%i \%d". 
  327.  275        Comma missing after closing brace of FOR loop in CALL macro. 
  328.  276        Line 13: When you give a SERIAL (not LINE), NET, or CALL command... 
  329.  286        The OUTPUT command in the middle of the page should say "\27[\?6c" 
  330.             rather than "\27[\?1c". 
  331.  287        SET INPUT TIMEOUT QUIT in the VMSLOGIN macro should be SET INPUT 
  332.             TIMEOUT PROCEED.  The continuation hyphen is missing from three 
  333.             lines.  The VMSLOGIN macro in the distributed CKERMIT.INI file 
  334.             corrects these errors. 
  335.  294        The CISLOGIN macro has several mistakes.  The following section: 
  336.  
  337.                         input 5 User ID:,-
  338.                         output \%2\13,-
  339.                         input Password:,-
  340.                         output \%3\13,-
  341.                         input 20 Enter Choice!,-
  342.  
  343.             Should be replaced by: 
  344.  
  345.                         input 5 User ID:,-
  346.                         output \%1\13,-
  347.                         input 5 Password:,-
  348.                         output \%2\13,-
  349.                         input 20 CompuServe Information Service,-
  350.  
  351.  299        Paragraph after "define ACCESS": "and assigned to the local 
  352.             temporary variable \%9" should be removed.  Towards the bottom of 
  353.             the page, the example and the last two paragraphs should be 
  354.             adjusted to discuss the ACCESS macro definition as it appears at 
  355.             the top of the page!  The \%9 variable is not used.  The example 
  356.             "if def \%9 doaccess { \%2} \%9" should read "if success doaccess { 
  357.             \%2} \v(return)".  In the first line of the last paragraph, "\%9" 
  358.             should be changed to "\v(return)". 
  359.  315        VMS examples: 
  360.  
  361.                         $ define compuserve $sys$system:kermit.exe sys$login:compuserve.cmd
  362.                         $ define sprintnet  $sys$system:kermit.exe sys$login:sprintnet.cmd
  363.  
  364.             Should be: 
  365.  
  366.                         $ compuserve :== $sys$system:kermit.exe sys$login:compuserve.cmd
  367.                         $ sprintnet  :== $sys$system:kermit.exe sys$login:sprintnet.cmd
  368.  
  369.  323-324    The description of C-Kermit program exit status codes fails to 
  370.             mention the special method used by (Open)VMS, in which these codes 
  371.             are assigned to the symbol CKERMIT_STATUS (see CKVKER.BWR). 
  372.  336        PRINT, PING, and similar commands work by running the corresponding 
  373.             system command (PRINT, lp, lpr, etc), which must be in the user's 
  374.             PATH with execute permission, otherwise an error message appears 
  375.             stating "command not found" or "permission denied", etc. 
  376.  346        SET KEY CLEAR added in 5A(190), restores default key mapping. 
  377.  352        The syntax of SET TELNET TERMINAL-TYPE should include italicized 
  378.             square brackets around "text" to indicate that the text is 
  379.             optional, and that if it is omitted, the TELNET TERMINAL-TYPE 
  380.             reverts to the default, usually the terminal type of your login 
  381.             session. 
  382.  352        The entries for SET TERMINAL ANSWERBACK, ARROW-KEYS, KEYPAD-MODE, 
  383.             and SCROLLBACK, etc, are missing.  These are OS/2-specific commands 
  384.             (all of these except those new to edits 189 and 190 - are described 
  385.             in the OS/2 Appendix on page 432).  See the OS/2 updates file. 
  386.  353        The entries for SET TERMINAL TYPE and WRAP are missing. These are 
  387.             also OS/2-specific commands (described on page 432). 
  388.  354        SET TRANSMIT PAUSE description is inaccurate.  An accurate 
  389.             description appears on page 204. 
  390.  366        In Table II-2, "ATSO=0" should be "ATS0=1". 
  391.  402-403    "define sys$input" and "define sys$output" in the examples on these 
  392.             two pages should be "define /user_mode sys$input", etc.  This makes 
  393.             the definitions effective only for the next program invocation.  In 
  394.             that case the "deassign sys$input", "deassign sys$output" commands 
  395.             can be removed. 
  396.  403        The section "Running C-Kermit in DCL Command Procedures" fails to 
  397.             describe how to use C-Kermit's exit status codes (see CKVKER.BWR). 
  398.  409        The Backup date in the example at the top of the pages should not 
  399.             be earlier than the Created and Revised dates.  The maximum record 
  400.             length is 65534, not 32767. 
  401.  419        The "stepping-stone" at the beginning of the OS/2 Appendix fails to 
  402.             refer readers to the CKCKER.BWR and CKOKER.BWR files, and the OS/2 
  403.             updates file CKOKER.UPD. 
  404.  420        Footnote.  The COMDMA driver, though discussed in the OS/2 
  405.             documentation, never actually existed.  The regular COM.SYS driver 
  406.             is used instead. 
  407.  425        The first paragraph in the Serial Communications section fails to 
  408.             mention that other serial-port device names are also acceptable. 
  409.  425        Bottom - OS/2 C-Kermit now also supports VT100, VT220, and ANSI 
  410.             terminal emulation. 
  411.  428-432    These pages are largely obsolete as of version 5A(190).  The 
  412.             CONNECT-mode actions shown in Table V-1, as well as the Arrow keys 
  413.             (Table V-2), Keypad keys (Table V-3), now have \Kverbs associated 
  414.             with them, exactly as in MS-DOS Kermit.  Additional \Kverbs are 
  415.             provided for VT220 (LK201) F keys and editing keys. 
  416.  430        Table V-3 fails to include the Num Lock key, and the accompanying 
  417.             text does not mention the fact the fact that it can be assigned 
  418.             with SET KEY.  See CKOKER.BWR, CKOVTK2.INI, and the OS/2 updates 
  419.             file for further information. 
  420.  431        Third paragraph.  "F1 through F4" should be "F1 through F10". Also, 
  421.             the Home key should be included in the list of keys that control 
  422.             screen rollback. 
  423.  432        The description of SET TERMINAL ANSWERBACK is missing. Also, 
  424.             numerous new SET TERMINAL commands have been added for OS/2; see 
  425.             the OS/2 updates file. 
  426.  435-439    Tables V-4 through V-9 need to be augmented with VT220 sequences. 
  427.             See the OS/2 updates file. 
  428.  438        No explanation of "nbits".  1=8-bit characters, 2=7-bit characters. 
  429.             "baud" should be "bps". 
  430.  440        Table V-10.  ESC W misplaced (alphabetically). 
  431.  447        "SET FILENAMES" should be "SET FILE NAMES". 
  432.  462        The text at the top of the page should say "ISO 8859", not "ISO 
  433.             8858". 
  434.  463        Table VIII-3.  Same as for Table 9-2, page 172.  Plus: Fr-Canadian 
  435.             should be listed as Canadian-French. 
  436.  486        The Cyrillic expansion for "KOI" is misspelled. 
  437.  491        Reference [6].  The third Cyrillic word is misspelled. 
  438.  495        Reference [48].  "Unterschiessheim" should be "Unterschleissheim". 
  439.             Reference [50].  Second Cyrillic word misspelled. 
  440.  ...        Hebrew character set tables need to be added. 
  441.  Index      Needs entries for: 
  442.                  Command-line options 
  443.                  Delay 
  444.                  Encryption 
  445.                  Grouping of words in commands 
  446.                  Commands, grouping of words in 
  447.                  Length, of packets 
  448.                  Length, of files 
  449.                  Prompt, how to set 
  450.                  Spaces, in commands 
  451.                  Telenet (see SprintNet) 
  452.                  Terminal servers, dialing out from 
  453.                  umask 
  454.  
  455.  Please send reports of other errors to the authors, as well as suggestions for 
  456.  improvements, additional index entries, and any other comments. 
  457.  
  458.  
  459. ΓòÉΓòÉΓòÉ 3. Installation ΓòÉΓòÉΓòÉ
  460.  
  461. C-Kermit should be installed by running the INSTALL.CMD REXX program. 
  462. INSTALL.CMD installs the proper version of OS/2 C-Kermit for your system into 
  463. the directory of your choice, configures the initialization files for the 
  464. default values that you choose, and with your permission updates your 
  465. CONFIG.SYS file by adding the C-Kermit directory to the PATH, LIBPATH, DPATH, 
  466. and BOOKSHELF lines. 
  467.  
  468. To execute the install program, place the C-Kermit distribution diskette in the 
  469. A: drive and then either click on the drive icon from the desktop or type 
  470. "a:install" in an OS/2 command window.  (You can also use disk B:).  Then 
  471. simply follow the instructions on your screen. 
  472.  
  473. To bypass the INSTALL procedure and install OS/2 C-Kermit by hand, please read 
  474. the installation instructions in the OS/2 Appendix of Using C-Kermit. 
  475.  
  476.  
  477. ΓòÉΓòÉΓòÉ 4. New Features ΓòÉΓòÉΓòÉ
  478.  
  479. New features have been added in many areas since the release of version 
  480. 5A(188).  The following sections describe the changes and additions in detail: 
  481.  
  482.       Program Management 
  483.       Making and Using Connections 
  484.       Terminal Emulation 
  485.       File Transfer 
  486.       New Client/Server Features 
  487.       International Character Sets 
  488.       Script Programming 
  489.       External Protocols 
  490.       New Command-Line Options 
  491.       Network Communications 
  492.  
  493.  
  494. ΓòÉΓòÉΓòÉ 4.1. Program Management ΓòÉΓòÉΓòÉ
  495.  
  496. Significant advances have been made in processing and parsing of commands at 
  497. the C-Kermit prompt: 
  498.  
  499.       Runtime Priority 
  500.       Command Processing - Command recall, retry, etc. 
  501.       Commard Parsing Improvements - Entering OS/2 filenames, etc. 
  502.       DIRECTORY Command Improvements 
  503.       The SET EXIT Command 
  504.       The CKERMIT.INI Environment Variable 
  505.  
  506.  
  507. ΓòÉΓòÉΓòÉ 4.1.1. Runtime Priority ΓòÉΓòÉΓòÉ
  508.  
  509. As of edit 191, you can set C-Kermit's runtime priority for best fit with your 
  510. system's multitasking environment.  The command is: 
  511.  
  512. SET PRIORITY { FOREGROUND-SERVER, REGULAR, TIME-CRITICAL } 
  513.  
  514. By default, C-Kermit's priority is FOREGROUND-SERVER, meaning that it is a bit 
  515. higher than that of other processes, because one generally wants snappy 
  516. performance from a communications application.  In case Kermit is slowing down 
  517. other processes too much, use this command to reduce its priority to REGULAR. 
  518. On the other hand, if other processes are slowing Kermit down too much, then 
  519. set the priority to TIME-CRITICAL; this will, of course, interfere with your 
  520. other processes. 
  521.  
  522.  
  523. ΓòÉΓòÉΓòÉ 4.1.2. Command Processing ΓòÉΓòÉΓòÉ
  524.  
  525. These features apply only when you are typing commands at the C-Kermit> prompt, 
  526. and not to command file or macro execution.  They were added in edit 190. 
  527.  
  528.       Command Retry 
  529.       Commard Recall 
  530.       Typeahead 
  531.  
  532.  
  533. ΓòÉΓòÉΓòÉ 4.1.2.1. Command Retry ΓòÉΓòÉΓòÉ
  534.  
  535. If you enter a command that contains a syntax error, C-Kermit now reprompts you 
  536. automatically with the portion of the command that was correct, so you don't 
  537. have to retype it.  Example: 
  538.  
  539. C-Kermit>set block-check oofa
  540. ?No keywords match - oofa
  541. C-Kermit>set block-check Γûô
  542.  
  543. "Γûô" shows the position of the cursor after you are reprompted.  At this point, 
  544. you can type question mark (?) to find out what is legal here, or you can 
  545. complete the command, or you can erase it with Ctrl-U, etc, just as if you had 
  546. retyped the initial words yourself.  If you want to disable this feature, tell 
  547. C-Kermit to: 
  548.  
  549. C-Kermit> set command retry off
  550.  
  551.  
  552. ΓòÉΓòÉΓòÉ 4.1.2.2. Command Recall ΓòÉΓòÉΓòÉ
  553.  
  554. As of edit 190, C-Kermit saves your commands in a command recall (history) 
  555. buffer, which, by default, holds your last 10 commands.  To recall your 
  556. previous command, press the Up-Arrow key or type Ctrl-B (that is, hold down the 
  557. Control or Ctrl key and press the B or b key).  Type Up-Arrow (or Ctrl-B) again 
  558. to recall the command before that, and so on.  If you try to go back too far, 
  559. C-Kermit beeps at you. 
  560.  
  561. Each time you recall a command, it appears before you as if you had typed it up 
  562. to, but not including, the Enter (Carriage Return) that actually causes it to 
  563. execute.  If you want to execute the command, press the Enter key.  If you want 
  564. to edit it, use the editing keys, including Ctrl-U to erase it. 
  565.  
  566. When you are viewing recalled commands, you can also go forwards in the command 
  567. recall buffer by pressing the Down-Arrow key or typing Ctrl-N.  This is handy 
  568. in case (for example) you went back too far. 
  569.  
  570. You can change the size of the command recall buffer to hold any number of 
  571. commands you like, subject to the memory limitations of your computer.  The 
  572. command is: 
  573.  
  574. SET COMMAND RECALL-BUFFER-SIZE number 
  575.  
  576. where number is the number of commands you want to keep.  The more you keep, 
  577. the more memory C-Kermit uses.  If you enter a size of 0, the command recall 
  578. feature is disabled.  Whenever you give the SET COMMAND RECALL-BUFFER-SIZE 
  579. command, your previous command history is lost.  You can display the size of 
  580. your command recall buffer, as well as your COMMAND RETRY setting, with SHOW 
  581. COMMAND. 
  582.  
  583. Warning: Other versions of C-Kermit use Ctrl-P to go up in the command buffer, 
  584. but you should not use Ctrl-P in OS/2 because it is likely to turn on your 
  585. printer!  (An OS/2 feature.) 
  586.  
  587. If you type Ctrl-P at the C-Kermit> prompt and nothing happens (no beep, no 
  588. recalled command, but you hear some disk activity), then type Ctrl-P once again 
  589. to turn off the printer. 
  590.  
  591.  
  592. ΓòÉΓòÉΓòÉ 4.1.2.3. Typeahead ΓòÉΓòÉΓòÉ
  593.  
  594. Typeahead is now permitted during entry of interactive commands.  Typeahead is 
  595. not preserved, however, over execution of command files or macros, because 
  596. these might themselves require keyboard input, or might enter CONNECT or file 
  597. transfer protocol mode. 
  598.  
  599.  
  600. ΓòÉΓòÉΓòÉ 4.1.3. Command Parsing Improvements ΓòÉΓòÉΓòÉ
  601.  
  602. Command Parsing Improvements were added to ease the use of C-Kermit by those 
  603. familiar with OS/2 file and directory naming conventions. 
  604.  
  605.       Entering OS/2 Filenames 
  606.  
  607.       The SET COMMAND QUOTING Command 
  608.  
  609.  
  610. ΓòÉΓòÉΓòÉ 4.1.3.1. Entering OS/2 Filenames ΓòÉΓòÉΓòÉ
  611.  
  612. Certain characters have special uses in C-Kermit commands: space separates 
  613. command words, backslash is a prefix for special items like variable names, 
  614. question mark produces a short help message.  How does one refer to files or 
  615. directories whose names contain these characters?  In most contexts, you can 
  616. include a literal space in a file or directory name using "backslash" notation 
  617. (see pp.21-22 of Using C-Kermit).  In this example, \32 is used to enter a 
  618. Space character (32 is the ASCII code for Space): 
  619.  
  620. C-Kermit> cd a\32b
  621. C-Kermit> send w\32x.y\32z
  622.  
  623. or by enclosing the file or directory name in braces: 
  624.  
  625. C-Kermit> cd {a b}
  626. C-Kermit> send {w x.y z}
  627.  
  628. Backslashes in filenames (i.e. directory separators) must normally be doubled: 
  629.  
  630. C-Kermit> cd e:\\budget\\food
  631. C-Kermit> send c:\\ckermod.ini
  632.  
  633. or represented as "forward" slashes: 
  634.  
  635. C-Kermit> cd e:/budget/food
  636. C-Kermit> send c:/ckermod.ini
  637.  
  638. Question marks, which are used in OS/2 as "wildcards" to match any single 
  639. character, must be quoted by backslash: 
  640.  
  641. C-Kermit> send cker\?\?\?.ini
  642.  
  643. As of edit 190, it is possible to enter OS/2 and DOS file specifications in the 
  644. natural way in most contexts, using backslash as the directory separator, for 
  645. example: 
  646.  
  647. C-Kermit> send c:\ckermit\ckermit.upd
  648.  
  649. This notation works in any command field where a file specification or a 
  650. directory name is expected, except when the command ends in a backslash 
  651. (explained later). 
  652.  
  653. "Natural notation", however, does not ordinarily work in command fields that 
  654. Kermit treats as text strings, as in the RUN command.  So, for example, while 
  655. you can now type: 
  656.  
  657. C-Kermit> delete \foo\x.x
  658.  
  659. You still must type: 
  660.  
  661. C-Kermit> run del \\foo\\x.x
  662.  
  663. (because this is just "unknown" text that Kermit sends to OS/2). 
  664.  
  665. However, you still must represent imbedded spaces as \32. 
  666.  
  667. If desired, you can temporarily turn off Kermit's processing of backslashes and 
  668. question marks to allow these characters to be used naturally in any command, 
  669. using the new SET COMMAND QUOTING command.  But as long as COMMAND QUOTING is 
  670. ON, which is the normal situation, the rules are: 
  671.  
  672.    1. When parsing the name of an existing file or directory, Kermit first 
  673.       tries the literal string, and if it fails, then it evaluates the string 
  674.       for backslash escapes and tries again.  For example, if you type: 
  675.  
  676.             C-Kermit> send c:\mupeen\oofa.txt
  677.  
  678.       and the file c:\mupeen\oofa.txt exists, Kermit will send it.  If you 
  679.       type: 
  680.  
  681.             C-Kermit> send c:\%a
  682.  
  683.       and a file named %A does not exist in the root directory of the C: disk, 
  684.       Kermit will attempt to evaluate the \%a variable to obtain the name of 
  685.       the file.  Affected commands include: CD, DELETE, DIRECTORY, IF [NOT] 
  686.       DIRECTORY, IF [NOT] EXIST, IF [NOT] NEWER, MSEND, OPEN READ, PRINT, 
  687.       PSEND, RENAME, RESEND, SEND, TAKE, TRANSLATE, TRANSMIT, and TYPE. 
  688.  
  689.    2. When parsing the name of an output file, Kermit first prescans the string 
  690.       to see if it contains any variable names, function calls, etc; if so, it 
  691.       evaluates the string; if not, it takes the string literally. For example, 
  692.       if you type: 
  693.  
  694.             C-Kermit> receive \%a
  695.  
  696.       Kermit will attempt to evaluate the variable \%a to obtain the filename, 
  697.       rather than creating a file called %A in the root directory.  But if you 
  698.       type: 
  699.  
  700.             C-Kermit> receive \letters\oofa.txt
  701.  
  702.       Kermit will take the backslashes literally and attempt to create the file 
  703.       \letters\oofa.txt.  Affected commands include: multine GET, LOG, OPEN 
  704.       APPEND, OPEN WRITE, RECEIVE, RENAME, TRANSLATE. 
  705.  
  706.    3. You can't mix single backslashes as directory separators and backslash 
  707.       escapes in the same string.  If you want to include a directory 
  708.       specification AND backslash escapes in the same string, the directory 
  709.       separators must be either "/" or "\\", for example: 
  710.  
  711.             C-Kermit> send c:ckermit/ckermit.\%a
  712.  
  713.       or: 
  714.  
  715.             C-Kermit> send c:\\ckermit\\ckermit.\%a
  716.  
  717.    4. You can't terminate a string with a single backslash, since that 
  718.       indicates a line continuation; you must use either "/" or "\\".  For 
  719.       example, you can't type: 
  720.  
  721.             C-Kermit> cd \
  722.  
  723.       but you can type: 
  724.  
  725.             C-Kermit> cd /
  726.  
  727.       or: 
  728.  
  729.             C-Kermit> cd \\
  730.  
  731.    5. You can avoid ambiguities by using "/" or "\\" as directory separators, 
  732.       which is how you had to enter them before this change.  Thus this change 
  733.       should be transparent to current users and existing scripts. 
  734.  
  735.  Exception:  This change does not apply to the SET LINE / SET HOST / SET PORT 
  736.  command, so any backslashes that must be included in the port or host name 
  737.  must either be doubled or replaced by "forward" slashes.  For example, if you 
  738.  want to "set port \\server\modem", you must enter "set port //server/modem" or 
  739.  "set port \\\\server\\modem" (or "set port //server\\modem", or...) 
  740.  
  741.  Minutiae:  So what if a file called \%A exists in the root directory, but you 
  742.  want to send the file whose name is stored in the variable \%A?  "send \%a" 
  743.  will send the former rather then the latter.  Well, you can always FORCE an 
  744.  item to be treated as a variable by using the \Fcontents() function: "send 
  745.  \fcontents(\%a)". 
  746.  
  747.  Here's another: single backslashes in a filename that is assigned to a 
  748.  variable won't behave as you might expect.  For example: "define \%a 
  749.  \letters\oofa.txt", "dir \%a".  The problem here is that \%a is evaluated 
  750.  recursively, and when the single backslashes are encountered in the first 
  751.  level evaluation, that triggers a second level, which destroys the string. 
  752.  Again, work around by using "/" or "\\" or "\fcontents()". 
  753.  
  754.  Such problems will affect only the most advanced Kermit users (who should be 
  755.  able to cope with them) and are more than offset by the benefits to "ordinary" 
  756.  users who are more likely to use literal OS/2 file specifications in commands 
  757.  than C-Kermit variable or function names. 
  758.  
  759.  
  760. ΓòÉΓòÉΓòÉ 4.1.3.2. The SET COMMAND QUOTING Command ΓòÉΓòÉΓòÉ
  761.  
  762. There is a new command in edit 190 to turn C-Kermit's backslash and 
  763. question-mark features off and on for any commands at all: 
  764.  
  765.  SET COMMAND QUOTING { ON, OFF } 
  766.      SET COMMAND QUOTING OFF gives you the ability to forget about all the 
  767.      complicated rules regarding backslashes and question marks in commands. 
  768.      You can enter OS/2 file and device names in the natural way in any command 
  769.      at all, but you will not be able to get help by typing question-mark, nor 
  770.      enter variable names and so forth in commands (but backslash notation for 
  771.      special characters, e.g. \32 for an imbedded space, still works). 
  772.  
  773.  When ON (which is the default), backslash and question mark fulfill their 
  774.  normal roles in C-Kermit commands.  When OFF, backslash and question mark are 
  775.  treated just like any other ordinary text characters by the command reader. 
  776.  
  777.  You can display the current command quoting setting with: 
  778.  
  779.  SHOW COMMAND 
  780.  
  781.  Examples: 
  782.  
  783.   set command quoting off
  784.   send foo.bar c:\foo\bar\baz\oofa.txt
  785.   get d:\files\???.?
  786.   set command quoting on
  787.  
  788.  instead of: 
  789.  
  790.   send foo.bar c:\\foo\\bar\\baz\\oofa.txt
  791.   get d:\\files\\\?\?\?.\?
  792.  
  793.  Or: 
  794.  
  795.   set command quoting off
  796.   cd \
  797.   set port \\server\modem
  798.   directory e:\pictures\pic???.gif
  799.   set command quoting on
  800.  rather than: 
  801.  
  802.   cd \\
  803.   set port \\\\server\\modem
  804.   directory e:\\pictures\\pic\?\?\?.gif
  805.  
  806.  Caution:  Expect unpleasant results if you try to run script programs with 
  807.  COMMAND QUOTING OFF. 
  808.  
  809.  
  810. ΓòÉΓòÉΓòÉ 4.1.4. DIRECTORY Command Improvements: ΓòÉΓòÉΓòÉ
  811.  
  812. As of edit 190, the OS/2 C-Kermit DIRECTORY command, which works by asking the 
  813. command shell specified in the COMSPEC environment variable to print a 
  814. directory listing, has been improved to allow option switches and output 
  815. redirection to be included.  The syntax is now: 
  816.  
  817. DIRECTORY [ filespec ] [ switches ] [ > file-or-device-name ] 
  818.  
  819. The file specification (if any) must precede any switches, and a space or tab 
  820. must separate the filespec from the switches.  If there is no file 
  821. specification, then there can be no spaces in the switches or output 
  822. redirection.  Examples: 
  823.  
  824. directory                  ; List all files in current directory
  825. directory /p               ; List all files, pause between screens
  826. directory >x.x             ; List all files to file x.x
  827. directory /o-d>x.x         ; List all files by date to file x.x
  828. directory a:               ; All files on current directory of A:
  829. directory a:\foo           ; All files in FOO directory of A:
  830. directory oofa             ; List all oofa files
  831. directory oofa.*           ; List all oofa files
  832. dir oofa.* /p              ; List all oofa files, pause between screens
  833. dir oofa.* > prn           ; Print a listing of all oofa files
  834. dir oofa.* /o-d > oofa.dir ; Chronological listing of oofa files to a file
  835.  
  836.  
  837. ΓòÉΓòÉΓòÉ 4.1.5. The SET EXIT Command ΓòÉΓòÉΓòÉ
  838.  
  839.  SET EXIT WARNING { ON, OFF } Tells whether C-Kermit should issue a warning 
  840.            message and require confirmation if an EXIT command, or a SET LINE 
  841.            (SET PORT), SET HOST, or TELNET command is given and a connection 
  842.            (dialed or network) still appears to be open, since any of these 
  843.            commands would close the currently open connection.  The default is 
  844.            OFF, meaning no warnings. 
  845.  
  846.  If SET EXIT WARNING is ON, a warning is issued if a network connection appears 
  847.  to be open: 
  848.  
  849.   C-Kermit>exit
  850.    A network connection to foo.bar.edu might still be active.
  851.   OK to exit?
  852.  
  853.  at which point you can type Yes or No. 
  854.  
  855.  You will also get a warning if the serial SET LINE device has the carrier (CD, 
  856.  DCD) signal and C-Kermit has not been told to SET CARRIER OFF: 
  857.  
  858.   C-Kermit>set line com2
  859.    A serial connection might still be active on com1
  860.   OK to close?
  861.  
  862.  Note that not all versions of C-Kermit have access to the carrier signal; if 
  863.  your version of C-Kermit says "Modem signals not available" when you give a 
  864.  SHOW COMM command, then SET EXIT WARNING ON will always warn you about a 
  865.  possibly active serial connection when you try to exit after using a SET LINE 
  866.  (SET PORT) connection. 
  867.  
  868.  SET EXIT STATUS number Tells C-Kermit to use the given number as its program 
  869.            exit (return) code.  This lets the user set program return code 
  870.            without actually having to exit; for example, the user can OR in 
  871.            various bits at different times. 
  872.  
  873.  Display the SET EXIT values with SHOW EXIT.  The SET and SHOW EXIT commands 
  874.  were added in Edit 190. 
  875.  
  876.  
  877. ΓòÉΓòÉΓòÉ 4.1.6. Other New Commands ΓòÉΓòÉΓòÉ
  878.  
  879.  SET BELL { AUDIBLE [ { BEEP, SYSTEM-SOUNDS } ], VISIBLE, NONE } 
  880.      Controls handling of Control-G (BEL) characters during terminal emulation 
  881.      and the method of providing informational messages during command mode. 
  882.      AUDIBLE uses a regular beep (default) or else OS/2 System Sounds (if you 
  883.      have them installed) to notify you of various conditions. VISIBLE flashes 
  884.      the screen for 1/4 second.  NONE ignores BELs entirely. (Replaces SET 
  885.      TERMINAL BELL.)  Edit 191. 
  886.  
  887.  BEEP [ { ERROR, INFORMATION, WARNING } ] 
  888.      Makes a beep or other effect (or not), according to your SET BELL setting. 
  889.      Edit 191. 
  890.  
  891.  CLEAR COMMAND-SCREEN 
  892.      Clears the command screen.  Equivalent to OS/2 CLS command.  Edit 191. 
  893.  
  894.  CLEAR DEVICE-AND-INPUT 
  895.      Clear both the communications device input buffer and and input command 
  896.      buffer.  (Replaces CLEAR BOTH)  Edit 191. 
  897.  
  898.  CLEAR SCROLLBACK 
  899.      Emptys the scrollback buffer of all contents including current terminal 
  900.      screen.  Edit 191. 
  901.  
  902.  CLEAR TERMINAL-SCREEN 
  903.      Clears the current terminal screen by scrolling it into the Scrollback 
  904.      buffer.  Edit 191. 
  905.  
  906.  SET PRINTER device-or-filename 
  907.      Where to send transparent-print, autoprint, or screen-copy (\Kdump) 
  908.      material during CONNECT.  Default is PRN (your printer).  You can also 
  909.      specify a disk file  name, in which case the given file is created if it 
  910.      does not exist, or is appended to if it already exists.  Use SET PRINTER 
  911.      NUL to discard printer output.  SHOW PRINTER displays the current setting. 
  912.      This command does not affect the PRINT command itself, which always uses 
  913.      the underlying OS/2 PRINT command. It also does not affect the Print 
  914.      Screen key, since this is handled by OS/2 directly, and is never seen by 
  915.      C-Kermit.  Edit 190. 
  916.  
  917.  
  918. ΓòÉΓòÉΓòÉ 4.1.7. The CKERMIT.INI Environment Variable ΓòÉΓòÉΓòÉ
  919.  
  920. The CKERMIT.INI environment variable, if defined, provides the pathname of a 
  921. file to use as its initialization file, overriding the default procedure for 
  922. locating the initialization file. 
  923.  
  924.  
  925. ΓòÉΓòÉΓòÉ 4.2. Making and Using Connections ΓòÉΓòÉΓòÉ
  926.  
  927. The following changes were made to the DIAL command in edit 191: 
  928.  
  929.      Since most people nowadays have high-speed error-correcting modems, the 
  930.       default for SET DIAL SPEED-MATCHING was changed on OFF, and the default 
  931.       for SET DIAL MNP-ENABLE was set to ON.  Note that MNP-ENABLE really means 
  932.       "enable error correction and compression negotiation", and applies to all 
  933.       error correction and compression protocols, not just MNP.  New commands, 
  934.       SET DIAL ERROR-CORRECTION and SET DIAL COMPRESSION were added to 
  935.       emphasize this fact, but for now they are just synonyms for SET DIAL MNP. 
  936.       Also note that this command presently takes effect only for TELEBIT, 
  937.       COURIER, and SPORTSTER modem types. 
  938.  
  939.      The CKERMIT.INI file defines a new macro, XDIAL, that dials repeatedly 
  940.       until the call is successfully answered or the user interrupts with 
  941.       Ctrl-C. 
  942.  
  943.      The CKERMOD.INI file now includes sample DIAL INIT-STRINGs for various 
  944.       types of high-speed modems not explicitly supported by the SET MODEM 
  945.       command. 
  946.  
  947.  A new Services Directory and enhanced Port assignments significantly improve 
  948.  C-Kermit's functionality: 
  949.  
  950.       Using the Services Directory 
  951.       Using Serial Communication Ports 
  952.  
  953.  
  954. ΓòÉΓòÉΓòÉ 4.2.1. Using the Services Directory ΓòÉΓòÉΓòÉ
  955.  
  956. In the original release of C-Kermit 5A, edit 188, the services directory 
  957. feature was included mainly as an illustration of how C-Kermit's script 
  958. programming language can be used to build handy communications tools, and so it 
  959. was not presented or explained until Chapter 13 of Using C-Kermit, and 
  960. therefore was probably missed by a lot of readers (and users). 
  961.  
  962. Since then, the services directory feature has proven to be quite useful in its 
  963. own right, and has also been improved in one small but important way. Here is a 
  964. brief nontechnical explanation. 
  965.  
  966. The services directory is a plain-text file in your Kermit directory, 
  967. containing one line, or "entry", for each service that you want to access. Each 
  968. service listed in your services directory can be connected to and logged in to 
  969. automatically, no matter whether this involves dialing up a modem, making a 
  970. network connection, or any other type of connection that C-Kermit can handle. 
  971. The name of the services directory file is CKERMIT.KSD. 
  972.  
  973. The services directory can be used only if you are also using the standard 
  974. C-Kermit initialization file. 
  975.  
  976. Each line in the services directory has the following parts: 
  977.  
  978. <name-of-entry> <login-macro-name> <username> <connection-details> 
  979.  
  980. For example: 
  981.  
  982. HP9000 unixlogin olga net tcp/ip hp.xyzcorp.com
  983.  
  984. where "HP9000" is the entry name, "unixlogin" is the login macro name, "olga" 
  985. is the username, and "net tcp/ip hp.xyzcorp.com" are the connection details. 
  986.  
  987. To use this entry, you would give the following command at the C-Kermit prompt: 
  988.  
  989. C-Kermit> access hp9000
  990.  
  991. or: 
  992.  
  993. C-Kermit> access hp9000 xxxxxx
  994.  
  995. where xxxxxx is your password on the computer you will be accessing. C-Kermit's 
  996. ACCESS macro (defined in your C-Kermit initialization file) handles the 
  997. connection details: "net" means it's a network connection; "tcp/ip" tells which 
  998. type of network, and "hp.xyzcorp.com" tells the name or address (in this case, 
  999. the name) of the computer or service on the network.  If you don't supply a 
  1000. password to the ACCESS command, you are prompted for it.  You do not (can not, 
  1001. and should not) include passwords in your services directory file. 
  1002.  
  1003. Here's another sample entry, in which the connection is made by dialing a 
  1004. modem: 
  1005.  
  1006. COMPUSERVE cislogin  765,4321  call hayes com1 2400 93,876-5432
  1007.  
  1008. Here, "COMPUSERVE" is the entry name, "cislogin" is the name of the login 
  1009. macro, "765,4321" is your CompuServe user ID, and the connection details are: 
  1010. "call hayes com1 2400 93,876-5432".  "Call" means we will be making a phone 
  1011. call; "hayes" tells which type of modem, "com1" is the name of the device that 
  1012. modem is connected to, "2400" tells the communication speed, and "93,876-5432" 
  1013. is the phone number to dial. 
  1014.  
  1015.  
  1016. ΓòÉΓòÉΓòÉ 4.2.1.1. Login Macros ΓòÉΓòÉΓòÉ
  1017.  
  1018. Each login macro looks for the appropriate prompts from the host or service and 
  1019. responds accordingly with your username, password, and/or other information, 
  1020. and then waits until it sees the main prompt of the host or service, or other 
  1021. indication that you have been logged in successfully. The following login 
  1022. macros are available in the standard C-Kermit initialization file, CKERMIT.INI: 
  1023.  
  1024.  UNIXLOGIN 
  1025.      For logging in to all types of UNIX systems: Solaris, HP-UX, Linux, IRIX, 
  1026.      DG/UX, NeXTSTEP, OSF/1, SunOS, etc etc.  The default system prompt 
  1027.      (explained below) is "\13\10$\32"; that is, carriage return, linefeed, 
  1028.      dollar sign, space. 
  1029.  
  1030.  VMSLOGIN 
  1031.      For logging in to DEC VAX/VMS or OpenVMS systems.  The default system 
  1032.      prompt is "\10\13$\32"; that is, linefeed, carriage return, dollar sign, 
  1033.      space. This macro can also be used for logging in to DG AOS/VS systems if 
  1034.      you specify a different prompt ("\13\10)\32").  NOTE: The VMSLOGIN macro 
  1035.      has been updated to account for new procedures for use with VMS 6.0 and/or 
  1036.      6.1, while retaining compatibility with earlier VMS releases. 
  1037.  
  1038.  VMLINELOGIN 
  1039.      For logging into IBM mainframes with VM/CMS over linemode connections. 
  1040.  
  1041.  VMFULLOGIN 
  1042.      For logging into IBM mainframes with VM/CMS over fullscreen connections. 
  1043.  
  1044.  CISLOGIN 
  1045.      For logging in to CompuServe. 
  1046.  
  1047.  DOWLOGIN 
  1048.      For logging in to Dow Jones News/Retrieval. 
  1049.  
  1050.  DJNRSPRINT 
  1051.      For logging in to Dow Jones News/Retrieval over SprintNet. 
  1052.  
  1053.  NOLOGIN 
  1054.      For accessing computers or services that do not require logging in. 
  1055.  
  1056.  Each login macro name must be followed by a username, even NOLOGIN. For 
  1057.  NOLOGIN, just include a "dummy" name, like "xxxx", that will not be used. 
  1058.  
  1059.  Other login macros can be easily constructed, modeled on those above.  Read 
  1060.  Chapters 11-13 of Using C-Kermit. for full instructions.  If you add or modify 
  1061.  login macros, you should put their definitions in your C-Kermit customization 
  1062.  file, CKERMOD.INI. 
  1063.  
  1064.  There was a problem with the login macros in C-Kermit 5A(188-189), namely that 
  1065.  the system prompt was hard-coded into the macro.  For example, the UNIXLOGIN 
  1066.  macro assumed that the UNIX shell prompt was "$ " (dollar sign followed by 
  1067.  space), but in many cases it might be something else, and the only way to 
  1068.  allow for different prompts was to edit the macro itself.  In C-Kermit 5A(190) 
  1069.  and later, you may include the system prompt in your services directory by 
  1070.  grouping it together in curly braces with the login macro name: 
  1071.  
  1072.   {macroname prompt}
  1073.  
  1074.  For example: 
  1075.  
  1076.   CSHELL    {unixlogin \13\10%\32} olga net tcp/ip bsd.xyzcorp.com
  1077.   CHEMISTRY {vmslogin \10\13CHEM$} OLGA net tcp/ip chemlab.xyzcorp.com
  1078.   DG        {vmslogin \13\10)\32}  olga net tcp/ip aosvs.xyzcorp.com
  1079.  
  1080.  The first example specifies the C-Shell prompt, "% ", rather than using the 
  1081.  default UNIX (Bourne Shell, K-Shell) prompt of "$ ".  The second example 
  1082.  accesses a system that has a custom prompt.  The third uses the VMSLOGIN macro 
  1083.  to access a Data General AOS/VS system by specifying the AOS/VS prompt, ") ", 
  1084.  since otherwise the Username: and Password: prompts are the same as for VMS. 
  1085.  
  1086.  The "backslash-number" notation is a way of including special (usually 
  1087.  nonprintable) characters in C-Kermit commands and files, explained on pages 
  1088.  21-22 of Using C-Kermit. The number is the ASCII character number, such as 10 
  1089.  for linefeed, 32 for space. 
  1090.  
  1091.  
  1092. ΓòÉΓòÉΓòÉ 4.2.1.2. Connection Details ΓòÉΓòÉΓòÉ
  1093.  
  1094. The Connection Details part of a services directory entry starts with one of 
  1095. the following words: 
  1096.  
  1097.  CALL      The connection is made with a phone call through a modem. 
  1098.  
  1099.  SERIAL    The connection is a direct (dedicated) serial connection. 
  1100.  
  1101.  NET       The connection is made on a network. 
  1102.  
  1103.  The subsequent information depends on the type of connection. 
  1104.  
  1105.  CALL must be followed by the following information, in this order: 
  1106.  
  1107.    1. The modem type (a valid SET MODEM value). 
  1108.    2. The name of the device on your computer that the modem is connected to. 
  1109.    3. The speed, in bits per second, at which to use the device. 
  1110.    4. The telephone number to dial.  This can also be the name of an entry in 
  1111.       your dialing directory. 
  1112.  
  1113.  SERIAL must be followed by the following information, in this order: 
  1114.  
  1115.    1. The serial device name. 
  1116.    2. The communication speed. 
  1117.  
  1118.  NET must be followed by: 
  1119.  
  1120.    1. The network type: TCP/IP, DECnet, NETBIOS, etc (a valid SET NET value). 
  1121.    2. The name or address of the host or service you want to connect to. 
  1122.    3. Additional network-specific information, like a service name or socket 
  1123.       number. 
  1124.  
  1125.  For TCP/IP network connections, you can include a socket number by appending 
  1126.  to the IP name or address with a colon, for example: 
  1127.  
  1128.   WEATHER  nologin  xxxx  net tcp/ip madlab.sprl.umich.edu:3000
  1129.  
  1130.  Create your services directory file using a text editor, as a plain-text 
  1131.  (ASCII) file.  If you are using a word processor, be sure to save your 
  1132.  services directory as a plain text (ASCII) file. 
  1133.  
  1134.  To use your services directory, just type "access" and the service name at the 
  1135.  C-Kermit prompt, for example: 
  1136.  
  1137.   C-Kermit> access hp9000
  1138.    olga's password: __________
  1139.  
  1140.  To list your services directory, type "list" at the C-Kermit prompt.  To look 
  1141.  up a particular services directory entry, type "list" and then the name, for 
  1142.  example "list hp9000". 
  1143.  
  1144.  
  1145. ΓòÉΓòÉΓòÉ 4.2.2. Using Serial Communication Ports ΓòÉΓòÉΓòÉ
  1146.  
  1147. In OS/2 C-Kermit, SET LINE and SET PORT are synonyms, they do exactly the same 
  1148. thing: select the communication device.  The syntax is the same for both: 
  1149.  
  1150. SET LINE [ device-name ]
  1151. SET PORT [ device-name ]
  1152.  
  1153. If you omit the device name, C-Kermit reverts to its default communications 
  1154. device, COM1.  If you include a device name: 
  1155.  
  1156.    1. If the device name is a single digit, 1 through 8, C-Kermit converts this 
  1157.       digit to the corresponding COM port name, COM1 through COM8. For example, 
  1158.       "set port 2" is converted to "set port com2". 
  1159.  
  1160.    2. If the device name begins with an underscore character (_), and all of 
  1161.       the following characters are numeric (for example, _12), the number is 
  1162.       assumed to be a file descriptor for an already-open communication device. 
  1163.       If the device name begins with an underscore, but any non-numeric 
  1164.       characters follow, a syntax error results. 
  1165.  
  1166.    3. SLIPCOM1, SLIPCOM2, ..., are special designations to be used for COM1, 
  1167.       COM2, etc, when they are owned by the SLIP driver; for example, when you 
  1168.       want to use C-Kermit to automate the SLIP connection process. See the 
  1169.       section on SLIP for details. 
  1170.  
  1171.    4. Any other sequence of characters (including "COM1", etc) is accepted 
  1172.       literally as a device name.  This includes Universal Naming Convention 
  1173.       (UNC) designations such as "\\server\modem" (which, due to Kermit's use 
  1174.       of the backslash character as command-escape, must be entered as 
  1175.       "\\\\server\\modem" or "//server/modem").  (Hint: But see the SET COMMAND 
  1176.       QUOTING command description.) 
  1177.  
  1178.    5. In cases (1), (3), and (4), C-Kermit attempts to open the device, and 
  1179.       then, if successful, checks to see whether it is a real communications 
  1180.       device. This would include redirectors such as VMODEM. If not, the SET 
  1181.       LINE / SET PORT command fails.  In case (2) above, no checking is done. 
  1182.       NOTE: You can also pass an open file descriptor to C-Kermit on the 
  1183.       command line, e.g.: 
  1184.  
  1185.             [C:\WORK] ckermit -l 4
  1186.  
  1187.  If you have problems using COM3, COM4, or higher, specify the address and 
  1188.  interrupt number (IRQ) in your OS/2 CONFIG.SYS file, in the line that starts 
  1189.  the serial communication driver, COM.SYS (or SIO.SYS): 
  1190.  
  1191.   DEVICE=C:\OS2\COM.SYS (number,base-address,irq) ...
  1192.  
  1193.  This example gives the addresses and IRQs for COM3 and COM4 but leaves the 
  1194.  values for COM1 and COM2 alone: 
  1195.  
  1196.   DEVICE=C:\OS2\COM.SYS (3,3E8,10) (4,2E8,15)
  1197.  
  1198.  and this example gives values for COM1 through COM4: 
  1199.  
  1200.   DEVICE=C:\OS2\COM.SYS (1,3F8,4) (2,2F8,3) (3,3E8,10) (4,2E8,15)
  1201.  
  1202.  Warning: The addresses and IRQs for COM3 and COM4 are not standardized, and 
  1203.  can vary depending on the design and configuration of your communication board 
  1204.  or internal modem.  Consult the documentation that came with your device. Make 
  1205.  sure you don't have multiple devices using the same IRQ. 
  1206.  
  1207.  If you are unable to communicate at all on a serial connection, one possible 
  1208.  reason might be that you have SET FLOW RTS/CTS (which is the default), but the 
  1209.  serial device is not receiving the CTS signal.  This can happen even if you 
  1210.  have given a prior MODE COMx OCTS=OFF command.  Try SET FLOW NONE.  If that 
  1211.  doesn't work, try rebooting your PC to reset the communications device driver. 
  1212.  
  1213.  SET FLOW XON/XOFF prevents you from transmitting Ctrl-S and Ctrl-Q characters 
  1214.  to the host.  These characters are commands (Search and Quote) in EMACS.  To 
  1215.  use Ctrl-S and Ctrl-Q as commands to host applications, you must SET FLOW NONE 
  1216.  or SET FLOW RTS/CTS. 
  1217.  
  1218.  
  1219. ΓòÉΓòÉΓòÉ 4.3. Terminal Emulation ΓòÉΓòÉΓòÉ
  1220.  
  1221. VT220 and ANSI terminal emulations were added in edit 190, along with mouse 
  1222. support and numerous other features described in this section.  Edit 191 adds: 
  1223. performance improvements; improved scrollback capabilities; adjustable mouse 
  1224. functions; dynamic screen sizes; VGA soft fonts for non-local code pages in 
  1225. fullscreen sessions; Telnet Negotiate About Window Size (NAWS); System Sounds 
  1226. support; VT220 autoprint and protected fields; ISO 2022 character-set 
  1227. designation and invocation. 
  1228.  
  1229. In version 5A(190) and earlier, the screen was updated once per character, 
  1230. resulting in somewhat sluggish terminal performance on high-speed connections. 
  1231. In version 5A(191) it is updated much more efficiently.  You can control the 
  1232. updating method with the new command: 
  1233.  
  1234. SET TERMINAL SCREEN-UPDATE { FAST, SMOOTH } [ milliseconds ]
  1235.  
  1236. (A millisecond is 1/1000 of a second.) The default value is FAST 100.  As the 
  1237. names imply, FAST is faster than SMOOTH; SMOOTH is smoother than FAST.  The 
  1238. milliseconds parameter specifies how often the screen may be repainted (if 
  1239. necessary). 
  1240.  
  1241. Screen rollback (normally accomplished by using the Page Up and Down keys) is 
  1242. instantaneous, and the maximum number of saved screens is virtually unlimited 
  1243. in the 32-bit version. 
  1244.  
  1245. C-Kermit will use any screen size that OS/2 is capable of producing. Starting 
  1246. with edit 191, you can adjust the size of the screen size in terminal mode from 
  1247. the C-Kermit> prompt by using two built-in commands: 
  1248.  
  1249. C-Kermit> set terminal width 80
  1250. C-Kermit> set terminal height 42
  1251.  
  1252. The height is the number of lines in the terminal screen, not counting the 
  1253. status line.  In windowed sessions, the width can only be 80 in pre-Warp 
  1254. systems, but various heights can be used; under Warp, any combination of width 
  1255. and height with a maximum screen area of 8192 characters can be given. 
  1256.  
  1257. In a fullscreen session, widths may be 40, 80, or 132, and heights may be 24, 
  1258. 42, 49, or 59, or other values supported by your video adapter. Warp is not 
  1259. required. 
  1260.  
  1261. Host-directed switching between 80-column and 132-column mode is supported in 
  1262. fullscreen sessions, and also under Warp in a window, but not in a window in 
  1263. pre-Warp OS/2 releases. 
  1264.  
  1265. Screen size is automatically negotiated on TELNET connections if the TELNET 
  1266. server supports this feature (see the TCP/IP section). 
  1267.  
  1268. The status line and the popup help screens have been totally redesigned to be 
  1269. more informative, and there are more of them.  For example, you get a different 
  1270. status line and popup help screen if you are in regular "online mode", or if 
  1271. your screen is rolled back, or if you are composing an accented character. 
  1272.  
  1273. The new \v(keyboard) variable indicates the keyboard model: "88", "101", or 
  1274. "122".  Unknown keyboards are reported as 4-digit hexadecimal values. 
  1275.  
  1276.  
  1277. ΓòÉΓòÉΓòÉ 4.3.1. Auto Up- and Download ΓòÉΓòÉΓòÉ
  1278.  
  1279. As of edit 190, OS/2 C-Kermit is able to respond automatically to "autoupload", 
  1280. "autodownload", or auto-anything-else directives from the remote computer 
  1281. during CONNECT mode.  These directives come in the form of an Application 
  1282. Program Command escape sequence, or APC, when C-Kermit's terminal emulation is 
  1283. ANSI, VT100, VT102, or VT220. 
  1284.  
  1285. The APC is sent by a host application to the terminal emulator, and contains 
  1286. one or more commands to be executed by the terminal emulation program.  This 
  1287. mechanism lets the host application software control your communications 
  1288. software, allowing an unprecedented degree of automation and convenience. 
  1289.  
  1290. Good uses for this feature include: 
  1291.  
  1292.    1. automatic communications, protocol, terminal, keyboard, or other setups 
  1293.       by the host application; 
  1294.  
  1295.    2. automatic initiation of file transfer by the host application. 
  1296.  
  1297.  The form of an APC is: 
  1298.  
  1299.   <ESC>_text<ESC>\
  1300.  
  1301.  where "<ESC>" is ASCII character 27 (Escape), and text is a command or a list 
  1302.  of commands separated by commas. The APC sequence was originally defined by 
  1303.  Digital Equipment Corporation for its VT300-series and higher terminals. 
  1304.  
  1305.  There are two "ends" to an APC operation, and you need to understand how to 
  1306.  control each end.  Let's call the application that sends an APC escape 
  1307.  sequence the "APC sender", and the application that receives it, and which is 
  1308.  supposed to execute the commands it contains, the "APC receiver". 
  1309.  
  1310.  Any host application can be an APC sender.  To send an APC, all it needs to do 
  1311.  is display the desired commands on your terminal screen, enclosed in <ESC>_ 
  1312.  and <ESC>\.  C-Kermit 5A(189) (and later) has a command for doing this: 
  1313.  
  1314.  APC text 
  1315.  
  1316.  where the text is a command (or commands) for the APC receiver. Leading and 
  1317.  trailing spaces are removed from the text unless it is enclosed in braces: 
  1318.  
  1319.  APC { text } 
  1320.  
  1321.  Here's an example that sets OS/2 C-Kermit parameters from UNIX (or VMS) 
  1322.  C-Kermit's command line, while OS/2 C-Kermit is in CONNECT mode: 
  1323.  
  1324.   C-Kermit> apc set receive packet-length 2000, set window 4
  1325.  
  1326.  This command causes UNIX C-Kermit to send the following characters to the 
  1327.  terminal (i.e. OS/2 C-Kermit's terminal emulator): 
  1328.  
  1329.   <ESC>_set receive packet-length 2000, set window 4<ESC>\
  1330.  
  1331.  OS/2 C-Kermit recognizes the APC sequence, extracts the commands from it, and 
  1332.  processes them automatically, according to the rules listed below. 
  1333.  
  1334.  Here's an example in which you define and then execute a UNIX C-Kermit macro 
  1335.  to send a file from UNIX C-Kermit, causing OS/2 C-Kermit to receive it 
  1336.  automatically without your having to escape back and type "receive".  You do 
  1337.  not need to CONNECT again after the transfer is done, either; this too happens 
  1338.  automatically. 
  1339.  
  1340.   C-Kermit> define autosend apc receive, send \%1
  1341.   C-Kermit> autosend oofa.txt
  1342.  
  1343.  A macro is used because if you type APC RECEIVE at the UNIX C-Kermit prompt, 
  1344.  OS/2 C-Kermit goes immediately into RECEIVE mode and you have no way to give 
  1345.  the SEND command to UNIX C-Kermit.  Conversely, if you type the SEND command 
  1346.  first, UNIX C-Kermit goes into SEND mode, and you have no opportunity to give 
  1347.  it an APC command.  When the macro (or a TAKE command file) is the source of 
  1348.  commands, the "Catch-22" is avoided because the keyboard is out of the 
  1349.  picture. 
  1350.  
  1351.  The APC receiver can be: 
  1352.  
  1353.      MS-DOS Kermit 3.13 or later 
  1354.      C-Kermit 5A(190) or later for OS/2 
  1355.      C-Kermit 5A(190) for UNIX 
  1356.      C-Kermit 5A(190) for VMS 
  1357.      C-Kermit 5A(190) for OS-9/68000 
  1358.  
  1359.  When one of these Kermit programs is in CONNECT mode, and an APC escape 
  1360.  sequence arrives, the commands it contains are executed if: 
  1361.  
  1362.    1. Terminal emulation is VT100, VT102, VT220, VT320, or ANSI, and: 
  1363.    2. SET TERMINAL APC is ON and the commands are not "dangerous", or: 
  1364.    3. SET TERMINAL APC is UNCHECKED. 
  1365.  
  1366.  After processing the APC sequence, whether its commands are executed or not, 
  1367.  the APC receiver returns to CONNECT mode automatically. 
  1368.  
  1369.  The C-Kermit initialization file defines several macros to let you take 
  1370.  advantage of the APC feature.  They are to be used at the C-Kermit> prompt, 
  1371.  when you are accessing C-Kermit through an APC receiver.  They include: 
  1372.  
  1373.  PCSEND filespec [ as-name ] 
  1374.      Sends the file or files from C-Kermit to the "PC" that's on your desk. (Of 
  1375.      course, the PC might also be a UNIX workstation, etc).  If the <filespec> 
  1376.      does not contain wildcard characters (that is, it is the name of a single 
  1377.      file), you can include the optional "as-name" to send it under a different 
  1378.      name.  The file or files are sent according to C-Kermit's current FILE 
  1379.      TYPE setting, text or binary (except in VMS, where VMS C-Kermit determines 
  1380.      the file type and transfer automatically for each file).  In other words, 
  1381.      the PCSEND macro is exactly like the SEND command, except it automatically 
  1382.      puts your local Kermit program into RECEIVE mode, and then back into 
  1383.      CONNECT mode again when the transfer is complete.  This process is 
  1384.      sometimes referred to as "autodownloading". 
  1385.  
  1386.  PCGET filespec [ as-name ] 
  1387.      This tells C-Kermit to get the specified file or files from your "PC". It 
  1388.      puts your local Kermit program into server mode, GETs the specified files 
  1389.      from it, then sends it a FINISH command and puts it back in CONNECT mode 
  1390.      automatically.  The transfer type is governed by C-Kermit's current FILE 
  1391.      TYPE setting. 
  1392.  
  1393.  This process can be called "autouploading". 
  1394.  
  1395.  C-Kermit's response to APC sequences is controlled by the following command: 
  1396.  
  1397.  SET TERMINAL APC { ON, OFF, UNCHECKED } 
  1398.  
  1399.  The default setting is OFF, meaning that C-Kermit ignores APC sequences unless 
  1400.  you tell it otherwise.  In the OS/2 version, they are harmlessly absorbed and 
  1401.  not displayed. 
  1402.  
  1403.  To activate the APC feature, use: 
  1404.  
  1405.  SET TERMINAL APC ON 
  1406.  
  1407.  This allows execution of all commands received in APC sequences except those 
  1408.  considered dangerous, such as: PUSH, RUN, !, REDIRECT, DELETE, RENAME, OUTPUT, 
  1409.  ENABLE, DISABLE, SCRIPT, and SET TERMINAL APC.  With this setting, for 
  1410.  example, it should not be possible for someone to send you a "letter bomb" or 
  1411.  screen message that contained an APC sequence to execute a command on your 
  1412.  computer (because RUN and ! are disabled).  The commands allowed by SET 
  1413.  TERMINAL APC ON are only the ones which affect Kermit itself, including the 
  1414.  initiation of Kermit file transfers. 
  1415.  
  1416.  Should you want to enable APC execution of ALL commands, which can be 
  1417.  dangerous and is therefore not recommended unless you know exactly what you 
  1418.  are doing and have total control over what is sent to your screen by the 
  1419.  remote host or service, you can: 
  1420.  
  1421.  SET TERMINAL APC UNCHECKED 
  1422.  
  1423.  Use UNCHECKED at your own risk. 
  1424.  
  1425.  Note that when TERMINAL APC is not OFF, the CONNECT command might run a bit 
  1426.  slower than when TERMINAL APC is OFF. 
  1427.  
  1428.  
  1429. ΓòÉΓòÉΓòÉ 4.3.2. The SET KEY Command ΓòÉΓòÉΓòÉ
  1430.  
  1431. As of edit 190, OS/2 C-Kermit's key mapping facility uses "Kermit keyboard 
  1432. verbs" rather than scan codes to denote actions that can be mapped to keys. All 
  1433. functions previously available are still available, but rather than being tied 
  1434. to hardwired scan codes, they are tied to \Kverbs.  This means: 
  1435.  
  1436.      You can move them anywhere you want. 
  1437.  
  1438.      You can't "lose" them, as you could before if you mapped something else 
  1439.       over a sacred key. 
  1440.  
  1441.      That is, NO keys are sacred; no keys are preempted by Kermit in any way 
  1442.       that you can't overcome; you can undefine/redefine any and all keys. 
  1443.  
  1444.      Key mapping files now contain descriptive verbs rather than magic numbers 
  1445.       as the definitions. 
  1446.  
  1447.      SHOW KEY shows the \Kverb, rather than an obscure numeric 
  1448.       cross-reference. 
  1449.  
  1450.  Furthermore: 
  1451.  
  1452.      The \Kverbs are totally compatible with MS-DOS Kermit (even if some of 
  1453.       the scan codes are not).  As of edit 191, OS/2 C-Kermit has a few 
  1454.       additional \Kverbs that MS-DOS Kermit does not have, mostly related to 
  1455.       the mouse and to various national-language keyboard modes. 
  1456.  
  1457.      You can combine characters, strings, and \Kverbs arbitrarily in a key 
  1458.       definition; e.g. you can put two or more verbs on one key. 
  1459.  
  1460.  Examples (for the F1 key): 
  1461.  
  1462.   set key \315 \161             ; Any single character
  1463.   set key \315 \27b             ; Escape and "b"
  1464.   set key \315 Any string       ; Any string of ordinary characters
  1465.   set key \315 { Any string }   ; String with leading & trailing spaces
  1466.   set key \315 \KupArr          ; Up-Arrow
  1467.   set key \315 \KupArr\KrtArr   ; Up-Arrow and Right-Arrow
  1468.   set key \315 abc\{KupArr}xyz  ; "abc", then Up-Arrow, then "xyz"
  1469.   set key \315 abc\KupArr xyz   ; "abc", then Up-Arrow, then " xyz"
  1470.   set key \315 \v(time)         ; Time when SET KEY was executed (constant)
  1471.   set key \315 \\v(time)        ; Time when key is pressed (variable)
  1472.  
  1473.  Braces are not required except to resolve ambiguity or to preserve leading 
  1474.  and/or trailing spaces in the definition.  Note that \\v(name) is a special 
  1475.  case.  Other backslash quantities cannot have their evaluation postponed by 
  1476.  "double quoting" in this way; they are simply emitted literally, e.g. "set key 
  1477.  \315 \\%a" causes F1 to send "\%a". 
  1478.  
  1479.  The new command: 
  1480.  
  1481.  SET KEY CLEAR 
  1482.  
  1483.  restores all default key definitions (listed below). 
  1484.  
  1485.  IMPORTANT: The key-mapping commands and command files of C-Kermit 5A(188) and 
  1486.  5A(189) don't work any more, and the instructions here supersede the ones 
  1487.  given in the OS/2 appendix of Using C-Kermit.  In particular, the CKOVTK.INI 
  1488.  VT220 key mapping command file is superseded by the new CKOVTK2.INI file. 
  1489.  
  1490.  User-defined macros can also be assigned to keys by using their names as 
  1491.  kverbs.  Example: 
  1492.  
  1493.   define download receive, connect
  1494.   set key \417 \Kdownload
  1495.  
  1496.  This example puts the act of receiving a file from a remote Kermit that has 
  1497.  already been told to send it on a "hot key", in this case Alt-Page-Down on the 
  1498.  PC.  C-Kermit will not automatically reenter terminal emulation upon 
  1499.  completion of the macro unless the macro includes a CONNECT command, as in the 
  1500.  example above. 
  1501.  
  1502.  Keyboard verbs are of the form \Kname, where "name" is the name of the verb. A 
  1503.  keyboard verb may be written \Kname, or \K{name}.  The latter form is needed 
  1504.  when the name is adjacent to other text, for example: 
  1505.  
  1506.   set key \315 \K{decF1}0
  1507.  
  1508.  
  1509. ΓòÉΓòÉΓòÉ 4.3.2.1. Keyboard Verbs ΓòÉΓòÉΓòÉ
  1510.  
  1511. The following keyboard verbs are available.  Capitalization does not matter: 
  1512.  
  1513.  \KupArr         Send what the DEC Up Arrow key sends 
  1514.  \KdnArr         Send what the DEC Down Arrow key sends 
  1515.  \KrtArr         Send what the DEC Right Arrow key sends 
  1516.  \KlfArr         Send what the DEC Left Arrow key sends 
  1517.  \Kgold          Send what the DEC Gold key sends 
  1518.  \Kpf1           Send what the DEC PF1 key sends (same as Gold) 
  1519.  \Kpf2           Send what the DEC PF2 key sends 
  1520.  \Kpf3           Send what the DEC PF3 key sends 
  1521.  \Kpf4           Send what the DEC PF4 key sends 
  1522.  \Kkp0           Send what the DEC Numeric Keypad 0 key sends 
  1523.  \Kkp1           Send what the DEC Numeric Keypad 1 key sends 
  1524.  \Kkp2           Send what the DEC Numeric Keypad 2 key sends 
  1525.  \Kkp3           Send what the DEC Numeric Keypad 3 key sends 
  1526.  \Kkp4           Send what the DEC Numeric Keypad 4 key sends 
  1527.  \Kkp5           Send what the DEC Numeric Keypad 5 key sends 
  1528.  \Kkp6           Send what the DEC Numeric Keypad 6 key sends 
  1529.  \Kkp7           Send what the DEC Numeric Keypad 7 key sends 
  1530.  \Kkp8           Send what the DEC Numeric Keypad 8 key sends 
  1531.  \Kkp9           Send what the DEC Numeric Keypad 9 key sends 
  1532.  \KkpComa        Send what the DEC Numeric Keypad comma (,) key sends 
  1533.  \KkpMinus       Send what the DEC Numeric Keypad minus (-) key sends 
  1534.  \KkpDot         Send what the DEC Numeric Keypad period (.) key sends 
  1535.  \KkpEnter       Send what the DEC Numeric Keypad Enter key sends 
  1536.  \KdecF6         Send what the DEC F6 key sends 
  1537.  \KdecF7         Send what the DEC F7 key sends 
  1538.  \KdecF8         Send what the DEC F8 key sends 
  1539.  \KdecF9         Send what the DEC F9 key sends 
  1540.  \KdecF10        Send what the DEC F10 key sends 
  1541.  \KdecF11        Send what the DEC F11 key sends 
  1542.  \KdecF12        Send what the DEC F12 key sends 
  1543.  \KdecF13        Send what the DEC F13 key sends 
  1544.  \KdecF14        Send what the DEC F14 key sends 
  1545.  \KdecF15        Send what the DEC F15 key sends 
  1546.  \KdecHelp       Send what the DEC Help key sends (same as F15) 
  1547.  \KdecF16        Send what the DEC F16 key sends 
  1548.  \KdecDo         Send what the DEC Do key sends (same as F16) 
  1549.  \KdecF17        Send what the DEC F17 key sends 
  1550.  \KdecF18        Send what the DEC F18 key sends 
  1551.  \KdecF19        Send what the DEC F19 key sends 
  1552.  \KdecF20        Send what the DEC F20 key sends 
  1553.  \KdecFind       Send what the DEC Find key sends 
  1554.  \KdecInsert     Send what the DEC Insert key sends 
  1555.  \KdecRemove     Send what the DEC Remove key sends 
  1556.  \KdecSelect     Send what the DEC Select key sends 
  1557.  \KdecPrev       Send what the DEC Previous Screen key sends 
  1558.  \KdecNext       Send what the DEC Next Screen key sends 
  1559.  
  1560.  The following Kverbs are actions that may be performed during a Connect mode 
  1561.  session: 
  1562.  
  1563.  \Kbreak         Send a BREAK signal.  For serial connections, this is a 250 
  1564.                  millisecond spacing condition.  For TELNET conditions, this is 
  1565.                  a TELNET BREAK command. 
  1566.  \Kclearscreen   Clear the terminal screen by rolling it into the scrollback 
  1567.                  buffer (edit 191). 
  1568.  \Kdebug         Toggle debugging 
  1569.  \Kdos           Synonym for \Kos2. 
  1570.  \Kdump          Print screen or marked text, or copy it to a file, depending 
  1571.                  on SET PRINTER.  When assigned to a mouse DRAG event \Kdump 
  1572.                  provides a simplified drag to select text and copy to printer 
  1573.                  (or file) operation. 
  1574.  \Kexit          Save the current terminal screen, exit terminal emulator, 
  1575.                  return to command prompt, but do not break the connection. 
  1576.  \KflipScn       Flip screen video normal/reverse 
  1577.  \Khangup        Hang up the connection 
  1578.  \Khelp          Pop-up help screen 
  1579.  \KholdScrn      Hold screen 
  1580.  \Kignore        Ignore this key, don't even beep 
  1581.  \KkbEnglish     Enter English keyboard mode. 
  1582.  \KkbHebrew      Enter Hebrew keyboard mode (see Hebrew Terminal Emulation). 
  1583.  \KkbRussian     Enter Russian keyboard mode (edit 191) (see Russian Terminal 
  1584.                  Emulation). 
  1585.  \KlBreak        Send a Long BREAK (1.5 msec serial, or TELNET BREAK) 
  1586.  \Klogoff        Deactivate logging to the current session log file but do not 
  1587.                  close the file. 
  1588.  \Klogon         Activate logging of session to a file.  If a session log file 
  1589.                  is not currently open, a session log file named "session.log" 
  1590.                  is created in the current directory, otherwise the current 
  1591.                  session log is used. 
  1592.  \Knull          Send a NUL (binary 0) character 
  1593.  \Kos2           Push to OS/2 
  1594.  \Kpaste         Copy text from the PM clipboard to the host (edit 191). 
  1595.  \KprintFF       Send a form feed to the printer 
  1596.  \KprtAuto       Toggle DEC auto-print mode.  Print current line when cursor 
  1597.                  moves off it. 
  1598.  \KprtCtrl       Toggle route-incoming-bytes-to-printer on and off. 
  1599.  \KprtScn        Synonym for \KprtCtrl 
  1600.  \Kreset         Reset the terminal emulator. 
  1601.  \Ktn_ayt        Send TELNET Are You There (AYT) 
  1602.  \Ktn_ip         Send TELNET Interrupt Process (IP) 
  1603.  
  1604.  The following Kverbs may be used to manipulate the screen rollback buffer for 
  1605.  viewing past history or during mark mode to select text: 
  1606.  
  1607.  \KdnOne         Screen rollback: Down one line 
  1608.  \KdnScn         Screen rollback: Down one screen 
  1609.  \KupOne         Screen rollback: Up one line 
  1610.  \KupScn         Screen rollback: Up one screen 
  1611.  \KendScn        Screen rollback: Latest (bottom, newest) screen 
  1612.  \KhomScn        Screen rollback: Oldest (top) screen in buffer 
  1613.  
  1614.  The following "mark mode" verbs were added in edit 191.  Read about mark mode 
  1615.  in Using Mark Mode from the Keyboard. 
  1616.  
  1617.  \Kmarkstart     Enter mark mode if it is not active.  In mark mode, clears all 
  1618.                  marked text and begins marking from the current location. 
  1619.  \Kmarkcancel    Cancel mark mode. 
  1620.  \Kmarkcopyclip  Copies marked text to the PM clipboard.  When assigned to a 
  1621.                  mouse DRAG event \Kmarkcopyclip provides a simplified drag to 
  1622.                  select text and copy to clipboard operation. 
  1623.  \Kmarkcopyhost  Copies marked text directly to the host.  When assigned to a 
  1624.                  mouse DRAG event \Kmarkcopyhost provides a simplified drag to 
  1625.                  select text and copy direct to host operation. 
  1626.  
  1627.  The following "mouse" verbs were added in edit 191: 
  1628.  
  1629.  \Kmousecurpos   Send the definitions assigned to the grey arrow keys to move 
  1630.                  the terminal cursor from its present position to where the 
  1631.                  mouse cursor is (effective only when assigned to a mouse 
  1632.                  event).  More about this in Using the Mouse. 
  1633.  \Kmousemark     Allows the mouse to be used to enter mark mode and select text 
  1634.                  without performing a copy operation on the marked text. 
  1635.                  (effective only when assigned to a mouse event).  More about 
  1636.                  this in Using the Mouse. 
  1637.  
  1638.  The SHOW KVERBS command lists all the \Kverbs in Kermit's repertoire. 
  1639.  
  1640.  
  1641. ΓòÉΓòÉΓòÉ 4.3.2.2. Default Key Mapping ΓòÉΓòÉΓòÉ
  1642.  
  1643. The default mapping, which applies when C-Kermit starts up, and which is 
  1644. restored whenever you give a SET KEY CLEAR command, is as follows.  It maps all 
  1645. of the VT100/VT102 keys to PC keys, but none of the keys that are unique to the 
  1646. VT220-and-higher keyboards (i.e. F6-F20 and the editing keys). For a complete 
  1647. VT220 mapping, you can execute the CKOVTK2.INI command file. 
  1648.  
  1649. The default mapping should apply to almost any PC keyboard, and does not 
  1650. require the gray keypads. 
  1651.  
  1652. Note:  The keyboard is in "English" mode by default, and returns to English 
  1653. mode upon reset ("English" means Kermit's Russian and Hebrew keyboard modes are 
  1654. not active, and the keyboard is treated "as-is"). 
  1655.  
  1656.  Verb             IBM Key
  1657.  
  1658.   \KholdScrn       Scroll Lock             Alternate (with Num Lock off)
  1659.  
  1660.   \KupArr          Gray keypad up arrow    and Numeric keypad up arrow
  1661.   \KdnArr          Gray keypad down arrow  and Numeric keypad down arrow
  1662.   \KrtArr          Gray keypad right arrow and Numeric keypad right arrow
  1663.   \KlfArr          Gray keypad left arrow  and Numeric keypad left arrow
  1664.  
  1665.   \KupScn          Gray Page Up            and Numeric keypad PgUp
  1666.   \KupOne          Ctrl Gray Page Up       and Numeric keypad Ctrl-PgUp
  1667.   \KdnScn          Page Gray Down          and Numeric keypad PgDn
  1668.   \KdnOne          Ctrl Gray Page Down     and Numeric keypad Ctrl-PgUp
  1669.   \KhomScn         Gray Home               and Numeric keypad Home
  1670.   \KendScn         Gray End                and Numeric keypad End
  1671.  
  1672.   \Kpf1            F1
  1673.   \Kpf2            F2
  1674.   \Kpf3            F3
  1675.   \Kpf4            F4
  1676.  
  1677.   \Kkp0            Alt-0, Top Rank
  1678.   \Kkp1            Alt-1, Top Rank
  1679.   \Kkp2            Alt-2, Top Rank
  1680.   \Kkp3            Alt-3, Top Rank
  1681.   \Kkp4            Alt-4, Top Rank
  1682.   \Kkp5            Alt-5, Top Rank
  1683.   \Kkp6            Alt-6, Top Rank
  1684.   \Kkp7            Alt-7, Top Rank
  1685.   \Kkp8            Alt-8, Top Rank
  1686.   \Kkp9            Alt-9, Top Rank
  1687.  
  1688.   \KkpMinus        Alt-Minus,  Top Rank
  1689.   \KkpPeriod       Alt-Period, Main Keypad
  1690.   \KkpComa         Alt-Comma,  Main Keypad
  1691.   \KkpEnter        Alt-Enter,  Main Keypad
  1692.  
  1693.   \Kreset          Alt-r
  1694.   \Kbreak          Alt-b
  1695.   \Kexit           Alt-x
  1696.   \KlBreak         Alt-l
  1697.   \Kdump           Alt-f
  1698.   \Kflipscn        Alt-v
  1699.   \Kdebug          Alt-d
  1700.   \Khelp           Alt-h
  1701.   \Khangup         Alt-u
  1702.  
  1703.   \Kmarkstart      Ctrl-F1
  1704.   \Kmarkcancel     Ctrl-F2
  1705.   \Kmarkcopyclip   Gray Ctrl-Insert
  1706.   \Kmarkcopyhost   Gray Ctrl-Shift-Insert
  1707.   \Kpaste          Gray Shift-Insert
  1708.  
  1709. Other default assignments: 
  1710.  
  1711.   Keypad Del           sends DEL (127)
  1712.   Gray Delete          sends DEL (127)
  1713.   Backspace            sends DEL (127)
  1714.   Ctrl-Backspace       sends DEL (127)
  1715.   Alt-Backspace        sends Backspace (Ctrl-H, 8)
  1716.   Backtab (Shift Tab)  sends Backspace (Ctrl-H, 8)
  1717.   Ctrl-2               sends NUL (0)
  1718.   Ctrl-Space Bar       sends NUL (0)
  1719.   Enter                sends carriage return (CR, 13)
  1720.   Ctrl-Enter           sends linefeed (LF, 10)
  1721.  
  1722. If you want the Backspace key to send an ASCII Backspace (Ctrl-H) character 
  1723. instead of DEL, which is required by some hosts and applications, tell C-Kermit 
  1724. to: 
  1725.  
  1726.   SET KEY \127 \8
  1727.  
  1728. The Alt key may be used with the numeric keypad to generate accented and 
  1729. special characters.  Hold down the Alt key and press 3 keypad digits 
  1730. representing the decimal code of the desired character in the current PC code 
  1731. page, for example Alt-161 sends lowercase letter i with acute accent in CP437 
  1732. or 850. 
  1733.  
  1734. Some users of the EMACS text editor like use the Alt key as a "Meta" key. 
  1735. C-Kermit comes with an EMACSKEY.INI file that sets this up for you. 
  1736.  
  1737. Other keys that have nothing mapped to them with SET KEY send themselves (e.g. 
  1738. a, Shift-a, Ctrl-A, etc), or, if nothing is assigned and there is no default 
  1739. value (e.g. for Alt-F6), nothing is sent and a beep is sounded (note: \Kignore 
  1740. can be assigned to suppress the beep). 
  1741.  
  1742. Key names that appear in the status line and popup help screens are in 
  1743. "English", giving the keytop associated with a particular scan code on the USA 
  1744. keyboard. 
  1745.  
  1746.  
  1747. ΓòÉΓòÉΓòÉ 4.3.3. Arrow Keys ΓòÉΓòÉΓòÉ
  1748.  
  1749. The PC arrow keys are mapped, by default, to send what DEC VT-terminal arrow 
  1750. keys send.  The DEC arrow keys are known as the "cursor keypad", and these keys 
  1751. always transmit escape sequences on a DEC terminal.  The exact sequences depend 
  1752. on what "mode" the terminal and keypad are in: 
  1753.  
  1754.              Mode............................
  1755. Key          Application    Cursor     VT52     Kermit Verb  PC Scan code
  1756.  Up Arrow     ESC O A        ESC [ A    ESC A    \KupArr       \584
  1757.  Down Arrow   ESC O B        ESC [ B    ESC B    \KdnArr       \592
  1758.  Right Arrow  ESC O C        ESC [ C    ESC C    \KrtArr       \589
  1759.  Left Arrow   ESC O D        ESC [ D    ESC D    \KlfArr       \587
  1760.  
  1761. The first two modes can be set by either the host (ESC [ ? 1 h / l) or by the 
  1762. SET TERMINAL ARROW-KEYS { APPLICATION, CURSOR } command.  The VT52 mode can be 
  1763. set via ESC [ ? 2 l and can be reset via ESC [ ? 2 h or by ESC <, and of course 
  1764. the terminal type can also be controlled by Kermit's SET TERMINAL TYPE command. 
  1765. The default (startup) arrow-key mode is CURSOR. 
  1766.  
  1767. Of course, you can assign any other sequences you want to the arrow keys.  For 
  1768. example, to assign EMACS commands to them: 
  1769.  
  1770. set key \584 \16  ; Ctrl-P to Up Arrow
  1771. set key \592 \14  ; Ctrl-N to Down Arrow
  1772. set key \589 \6   ; Ctrl-F to Right Arrow
  1773. set key \587 \2   ; Ctrl-B to Left Arrow
  1774.  
  1775. Whatever definitions you have assigned to the arrow keys are used by the 
  1776. mouse-directored terminal cursor feature. 
  1777.  
  1778.  
  1779. ΓòÉΓòÉΓòÉ 4.3.4. The Numeric Keypad ΓòÉΓòÉΓòÉ
  1780.  
  1781. Numeric (auxilliary) keypad keys are similar to arrow keys, in that they, too, 
  1782. send different sequences depending on the mode and the emulation.  Note that we 
  1783. are talking here about the DEC numeric keypad, which is slightly different from 
  1784. the IBM one (the DEC keypad has different keytop labels, and one additional 
  1785. key). 
  1786.  
  1787.              VT1xx/2xx Mode.......   VT52 Mode...........
  1788. DEC Key      Application   Numeric   Application  Numeric  Kermit Verb
  1789.   PF1 (Gold)  ESC O P      ESC O P    ESC P        ESC P   \Kpf1,\Kgold
  1790.   PF2         ESC O Q      ESC O Q    ESC Q        ESC Q    \Kpf2
  1791.   PF3         ESC O R      ESC O R    ESC R        ESC R    \Kpf3
  1792.   PF4         ESC O S      ESC O S    ESC S        ESC S    \Kpf4
  1793.    0          ESC O p         0       ESC ? p        0      \Kkp0
  1794.    1          ESC O q         1       ESC ? q        1      \Kkp1
  1795.    2          ESC O r         2       ESC ? r        2      \Kkp2
  1796.    3          ESC O s         3       ESC ? s        3      \Kkp3
  1797.    4          ESC O t         4       ESC ? t        4      \Kkp4
  1798.    5          ESC O u         5       ESC ? u        5      \Kkp5
  1799.    6          ESC O v         6       ESC ? v        6      \Kkp6
  1800.    7          ESC O w         7       ESC ? w        7      \Kkp7
  1801.    8          ESC O x         8       ESC ? x        8      \Kkp8
  1802.    9          ESC O y         9       ESC ? y        9      \Kkp9
  1803.    -          ESC O m         -       ESC ? m        -      \KkpMinus
  1804.    ,          ESC O l         ,       ESC ? l        ,      \KkpComa
  1805.    .          ESC O n         .       ESC ? n        .      \KkpDot
  1806.  Enter        ESC O M     CR or CRLF  ESC ? M    CR or CRLF \KkpEnter
  1807.  
  1808. The Enter key Numeric-Mode assignment depends on whether the terminal 
  1809. (emulator) is in "ANSI Line Mode", which is controlled by the host via ESC [ 20 
  1810. h (Line Mode) and 
  1811. ESC [ 20 l (small letter el, No Line Mode), or by Kermit's SET TERMINAL 
  1812. NEWLINE-MODE command.  By default, the emulator is not in newline mode, and 
  1813. sends only Carriage Return (Ctrl-M, ASCII 13) when you press the Return or 
  1814. Enter key. 
  1815.  
  1816. The keypad mode is controlled by the host: ESC = puts it in Application Mode; 
  1817. ESC > puts it in Numeric Mode.  Or you can control it yourself with the SET 
  1818. TERMINAL KEYPAD-MODE command.  The default (startup) keypad state is Numeric. 
  1819.  
  1820. Note:  The PC numeric keypad keys generate different scan codes, depending on 
  1821. the Num Lock state.  Please read the CKOVTK2.INI file for details. 
  1822.  
  1823.  
  1824. ΓòÉΓòÉΓòÉ 4.3.5. The Compose Key ΓòÉΓòÉΓòÉ
  1825.  
  1826. As of edit 190, characters that exist in Latin-1-like (Western European) 
  1827. character sets can be entered using Compose-key sequences.  Press the Compose 
  1828. key (verb \Kcompose, assigned by default to Alt-c), then two more keys to 
  1829. produce the desired character, for example ' and A to send A-acute.  Don't hold 
  1830. the \Kcompose key down while typing the two other keys - it does not work like 
  1831. a shift key.  You can watch your progress in the status line, and if you push 
  1832. the help key (Alt-h by default) while a compose sequence is active, you get a 
  1833. special help screen. 
  1834.  
  1835. If you want to cancel a compose-key sequence, just press the space bar.  If you 
  1836. enter a valid sequence, it is translated according to the terminal 
  1837. character-set and transmitted. 
  1838.  
  1839. Below is a complete listing of the valid compose-key sequences; if you enter a 
  1840. character combination that is not in this list, C-Kermit beeps and ignores it. 
  1841. If you press the Compose key during Cyrillic or Hebrew terminal emulation, OS/2 
  1842. C-Kermit just beeps (use the special keyboard modes that are supplied for 
  1843. entering Cyrillic and Hebrew characters). 
  1844.  
  1845. Notice that case (shift key) matters for letters, but not for most symbols, and 
  1846. that in most cases, the order of the two characters doesn't matter.  The 
  1847. compose sequences supported by C-Kermit are the same as those used by DEC 
  1848. US-model VT220 terminals in "ISO" mode.  There are no "dead keys".  The full 
  1849. repertoire listed below is available only if your OS/2 code page is 850.  If 
  1850. you are using another code page (437, 852, etc), some of these characters (the 
  1851. ones that are not in your code page) might show up as question marks. 
  1852.  
  1853. Letters...
  1854.  
  1855. A `    A grave                      a `    a grave
  1856. ` A    A grave                      ` a    a grave
  1857. A '    A acute                      a '    a acute
  1858. ' A    A acute                      ' a    a acute
  1859. A ^    A circumflex                 a ^    a circumflex
  1860. ^ A    A circumflex                 ^ a    a circumflex
  1861. A ~    A tilde                      a ~    a tilde
  1862. ~ A    A tilde                      ~ a    a tilde
  1863. A "    A diaeresis                  a "    a diaeresis
  1864. " A    A diaeresis                  " a    a diaeresis
  1865. A *    A ring above                 a *    a ring above
  1866. * A    A ring above                 * a    a ring above
  1867. A E    A with E                     a e    a with e
  1868. C ,    C Cedilla                    c ,    c cedilla
  1869. , C    C Cedilla                    , c    c cedilla
  1870. E `    E grave                      e `    e grave
  1871. ` E    E grave                      ` e    e grave
  1872. E '    E acute                      e '    e acute
  1873. ' E    E acute                      ' e    e acute
  1874. E ^    E circumflex                 e ^    e circumflex
  1875. ^ E    E circumflex                 ^ e    e circumflex
  1876. E "    E diaeresis                  e "    e diaeresis
  1877. " E    E diaeresis                  " e    e diaeresis
  1878. I `    I grave                      i `    i grave
  1879. ` I    I grave                      ` i    i grave
  1880. I '    I acute                      i '    i acute
  1881. ' I    I acute                      ' i    i acute
  1882. I ^    I circumflex                 i ^    i circumflex
  1883. ^ I    I circumflex                 ^ i    i circumflex
  1884. I "    I diaeresis                  i "    i diaeresis
  1885. " I    I diaeresis                  " i    i diaeresis
  1886. - D    Icelandic Eth                - d    Icelandic eth
  1887. D -    Icelandic Eth                d -    Icelandic eth
  1888. H T    Icelandic Thorn              h t    Icelandic thorn
  1889. T H    Icelandic Thorn              t h    Icelandic thorn
  1890. N ~    N tilde                      n ~    n tilde
  1891. ~ N    N tilde                      ~ n    n tilde
  1892. O `    O grave                      o `    o grave
  1893. ` O    O grave                      ` o    o grave
  1894. O '    O acute                      o '    o acute
  1895. ' O    O acute                      ' o    o acute
  1896. O ^    O circumflex                 o ^    o circumflex
  1897. ^ O    O circumflex                 ^ o    o circumflex
  1898. O ~    O tilde                      o ~    o tilde
  1899. ~ O    O tilde                      ~ o    o tilde
  1900. O "    O diaeresis                  o "    o diaeresis
  1901. " O    O diaeresis                  " o    o diaeresis
  1902. O /    O oblique stroke             o /    o oblique stroke
  1903. / O    O oblique stroke             / o    o oblique stroke
  1904. U `    U grave                      u `    u grave
  1905. ` U    U grave                      ` u    u grave
  1906. U '    U acute                      u '    u acute
  1907. ' U    U acute                      ' u    u acute
  1908. U ^    U circumflex                 u ^    u circumflex
  1909. ^ U    U circumflex                 ^ u    u circumflex
  1910. U "    U diaeresis                  u "    u diaeresis
  1911. " U    U diaeresis                  " u    u diaeresis
  1912. Y '    Y acute                      y '    y acute
  1913. ' Y    Y acute                      ' y    y acute
  1914. s s    German sharp s               y "    y diaeresis
  1915.  
  1916. Symbols...
  1917.  
  1918. ' '    Acute accent                 U /    Micro sign
  1919. A A    At sign                      u /    Micro sign
  1920. a a    At sign                      . ^    Middle dot
  1921. / /    Backslash                    X X    Multiplication sign
  1922. / <    Backslash                    x x    Multiplication sign
  1923. | |    Broken bar                   - ,    Not sign
  1924. , ,    Cedilla                      + +    Number sign
  1925. C /    Cent sign                    S !    Paragraph sign
  1926. c /    Cent sign                    S 0    Paragraph sign
  1927. C 0    Copyright sign               S O    Paragraph sign
  1928. C O    Copyright sign               s !    Paragraph sign
  1929. c 0    Copyright sign               s 0    Paragraph sign
  1930. c o    Copyright sign               s o    Paragraph sign
  1931. X 0    Currency sign                P !    Pilcrow sign
  1932. X O    Currency sign                p !    Pilcrow sign
  1933. x 0    Currency sign                + -    Plus or minus sign
  1934. x o    Currency sign                L -    Pound sterling sign
  1935. 0 ^    Degree sign                  l -    Pound sterling sign
  1936. - :    Division sign                R O    Registered Trademark
  1937. A _    Feminine ordinal             r o    Registered Trademark
  1938. a _    Feminine ordinal             > >    Right angle quotation
  1939. 1 2    Fraction one half            ) -    Right brace
  1940. 1 4    Fraction one quarter         ) )    Right bracket
  1941. ! !    Inverted exclamation         - -    Soft hyphen
  1942. ? ?    Inverted question mark       1 ^    Superscript 1
  1943. < <    Left angle quotation         2 ^    Superscript 2
  1944. ( -    Left brace                   3 ^    Superscript 3
  1945. ( (    Left bracket                 / ^    Vertical bar
  1946. - ^    Macron                       Y -    Yen sign
  1947. O _    Masculine ordinal            y -    Yen sign
  1948. o _    Masculine ordinal
  1949.  
  1950.  
  1951. ΓòÉΓòÉΓòÉ 4.3.6. The SET TERMINAL Command ΓòÉΓòÉΓòÉ
  1952.  
  1953. The following SET TERMINAL and related commands have been added or modified 
  1954. since version 5A(188): 
  1955.  
  1956.  SET TERMINAL ANSWERBACK { OFF, ON } 
  1957.      Controls whether or not OS/2 C-Kermit's terminal emulator treats incoming 
  1958.      Ctrl-E characters as ENQ requests or simply ignores them.  ON means ENQ 
  1959.      causes C-Kermit to send an Answerback message, which is "OS/2 C-Kermit" in 
  1960.      edit 189 & earlier, and in edit 189 is "OS/2 C-Kermit <version><CR>", 
  1961.      where <version> is the numeric C-Kermit program version number, e.g. 
  1962.      501189 for version 5A(189), and <CR> is a carriage return.  OFF, the 
  1963.      default, means C-Kermit ignores Ctrl-E's.  In edit 190 and later, the 
  1964.      terminal emulation was added to the answerback string, e.g. "OS/2 C-Kermit 
  1965.      501191 VT220<CR>". 
  1966.  
  1967.  SET TERMINAL CHARACTER-SET { HEBREW-ISO, HEBREW-7, CP862, HPROMAN8 } ... 
  1968.      The Hebrew and HP character sets were added in edit 190. Type SET TERMINAL 
  1969.      CHAR ? to see a complete list.  In edit 191, the default "local 
  1970.      character-set" is your SET TERMINAL FONT value, if any (see below), or if 
  1971.      none, your current code page. 
  1972.  
  1973.  SET TERMINAL CHARACTER-SET remote-cset [ local-cset [ G0 G1 G2 G3 ] ] 
  1974.      In edit 191, it is possible to designate character sets to specific 
  1975.      tables, as described in ISO standards 2022 and 4873.  Normally there is no 
  1976.      reason to do this; you would only specify the Gn tables to undo some 
  1977.      arrangement that was caused by a malfunctioning host application or by 
  1978.      communication line noise, or to accommodate some unusual combination of 
  1979.      character sets. If you don't specify the Gn's, then if the remote-cset is 
  1980.      a 7-bit set, it is designated to all four of G0 through Gn.  If it is an 
  1981.      8-bit set, then ASCII (ISO 646 International Reference Version) is 
  1982.      designated to G0 and the right half of the specified set is designated to 
  1983.      all three of G1 through G3. 
  1984.  
  1985.  SET TERMINAL CODE-PAGE number 
  1986.      Changes the "hardware" code page (video adapter and keyboard character 
  1987.      set) used by Kermit and any processes that Kermit creates.  Typical code 
  1988.      page numbers are 437 (original US code page) and 850 (multinational code 
  1989.      page). Use SHOW TERMINAL to display the current code page and to list the 
  1990.      code pages that are available for use on your PC.  OS/2 allows only two 
  1991.      code pages to be prepared at once; this is done via the CODEPAGE statement 
  1992.      in CONFIG.SYS, for example "CODEPAGE=437,850".  If you try to prepare a 
  1993.      code page that is not supplied with your OS/2 system (for example, Hebrew 
  1994.      code page 862 on a US system) you will get an error message when the 
  1995.      system starts up.  You might be able to get around this by opening your 
  1996.      System Setup folder, executing Selective Install, and changing your 
  1997.      Country. But note that "Code pages 862 and 864 [Hebrew and Arabic] are 
  1998.      supported with a country supplement available only in certain countries", 
  1999.      and "Code pages 932, 938, 944, and 948 [Japanese, Chinese, and Korean] are 
  2000.      supported only with the DBCS version of the OS/2 operating system on DCBS 
  2001.      hardware" [from OS/2 "help codepage"].  Also see SET TERMINAL FONT. 
  2002.  
  2003.  SET TERMINAL COLOR { SELECTION, ... } foreground background 
  2004.      Colors to be used for selected text in mark-and-copy operations. 
  2005.  
  2006.  SET TERMINAL FONT { CP437, CP850, CP852, CP862, CP866, DEFAULT } 
  2007.      Loads a "soft font" corresponding to the named code page into your video 
  2008.      adapter.  Works only in fullscreen sessions, and works best with 24-line 
  2009.      terminal screens; might or might not work with other sizes, depending on 
  2010.      your video adapter.  This command, new to edit 191, allows "code pages" to 
  2011.      be loaded that are not furnished with, or prepared in, your OS/2 system, 
  2012.      particularly CP852 (for East European languages like Czech, Polish, 
  2013.      Hungarian, Romanian); CP862 (Hebrew); and CP866 (Cyrillic for Russian, 
  2014.      Belorussian, and Ukrainian).  The fonts come with C-Kermit in the 
  2015.      PCFONTS.DLL library.  DEFAULT means to reload the code page that was in 
  2016.      effect at the time Kermit started. Fonts loaded in this manner are visible 
  2017.      only on Kermit's terminal screen, not the command screen or in any other 
  2018.      session.  See the sections on Hebrew and Russian terminal emulation for 
  2019.      more information. 
  2020.  
  2021.  SET TERMINAL HEIGHT number 
  2022.      Number of lines to use in the terminal (CONNECT) screen, not counting the 
  2023.      status line.  The supported heights depend on your display adapter, the 
  2024.      OS/2 version, and whether you are in a fullscreen session or a window. 
  2025.      (The default value is the screen size of the session at startup.) 
  2026.  
  2027.  SET TERMINAL OUTPUT-PACING milliseconds 
  2028.      Tells how many milliseconds to pause between sending each character to the 
  2029.      host during CONNECT mode.  This applies to keys that you type, function 
  2030.      key escape sequences, key macros, and (most importantly) to material that 
  2031.      is pasted into the terminal window, but ONLY ON SERIAL CONNECTIONS.  On 
  2032.      network connections, application-level pacing is not needed.  Use this 
  2033.      command if you see TRANSMISSION BLOCKED messages in the status line when 
  2034.      entering data (which usually indicate serial port hardware buffer 
  2035.      overruns) or if data is lost when pasting into the terminal screen.  The 
  2036.      default OUTPUT-PACING value is 0 (none).  -1 means: A 50 millisecond pause 
  2037.      between the characters generated by function keys, arrow keys, and keys 
  2038.      that have character strings assigned to them via SET KEY, but no pausing 
  2039.      otherwise.  Any number greater than zero applies to ALL characters sent to 
  2040.      the host during CONNECT mode on a serial connection.  The maximum value is 
  2041.      10000, or 10 seconds. 
  2042.  
  2043.  SET TERMINAL ROLL-MODE { INSERT, OVERWRITE } 
  2044.      This controls what happens to incoming data when the screen is rolled 
  2045.      back.  INSERT (the default) means that incoming data is inserted in its 
  2046.      proper plade in the session, usually at the end (bottom). OVERWRITE means 
  2047.      that incoming data writes over the screen that is showing, even if it is 
  2048.      an "old" screen. 
  2049.  
  2050.      In either case, you can communicate with the host by typing, pasting, etc, 
  2051.      while the screen is rolled back. 
  2052.  
  2053.  SET TERMINAL SCREEN-UPDATE { FAST, SMOOTH } [ milliseconds ] 
  2054.      Selects a method and frequency for screen updates.  The default method is 
  2055.      FAST, the default frequency is every 100 milliseconds, i.e. 10 times per 
  2056.      second. 
  2057.  
  2058.  SET TERMINAL SCROLLBACK number 
  2059.      Size of terminal scrollback buffer.  number is how many screen lines to 
  2060.      save including the current terminal screen.  The default is 2000. The 
  2061.      minimum value is 255 and the maximum is 2,000,000.  Every 1024 lines in 
  2062.      scrollback buffer size results in a potential increase in the size of the 
  2063.      SWAPPER.DAT file of 512k. 
  2064.  
  2065.  SET TERMINAL TYPE { ANSI, VT52, VT100, VT102, VT220 } 
  2066.      Allows selection of the terminal emulations listed.  VT220, VT100, and 
  2067.      ANSI are new to edit 190. 
  2068.  
  2069.      For the DEC VT family of emulations, Kermit identifies itself 
  2070.      appropriately in response to DECID or DA; SHOW TERMINAL displays current 
  2071.      type and ID string. VT100 is exactly like VT102, but without character 
  2072.      insert/delete.  8-bit controls like CSI (= 155) are accepted in VT220 
  2073.      mode, but you must SET TERMINAL BYTESIZE 8 (and, of course SET PARITY 
  2074.      NONE) in order to use them, and you must also set your terminal character 
  2075.      set to something other than TRANSPARENT or any of the IBM code pages or 
  2076.      other sets that put graphic characters in the C1 area.  C-Kermit will also 
  2077.      send C1 controls (e.g. when you push the arrow keys) if these conditions 
  2078.      are met AND the host has commanded it to do so. 
  2079.  
  2080.      The default emulation is VT220. VT220 emulation is almost fully 
  2081.      implemented (lacking mainly: downline-loadable user-defined keys, 
  2082.      downline-loadable fonts), and works well with most VMS applications, such 
  2083.      as EVE (EDIT/TPU). All-In-1, and DECnotes. 
  2084.  
  2085.      NB: To use VT220 emulation with VMS applications, you must either:  (a) 
  2086.      tell C-Kermit to SET TERMINAL BYTESIZE 8, or (b) tell VMS to SET TERM 
  2087.      /NOEIGHT. 
  2088.  
  2089.      ANSI is so-called ANSI terminal emulation, used with BBS's, a subset of 
  2090.      VT100 with several other other features added (color, etc), using the 
  2091.      8-bit IBM Code Page 437 characters for box- and line-drawing.  It is 
  2092.      approximately equivalent to the OS/2 console driver and to DOS ANSI.SYS. 
  2093.      Colors are automatically set to black on white, TERMINAL BYTESIZE is 
  2094.      automatically set to 8, TERMINAL CHARACTER-SET is forced to TRANSPARENT, 
  2095.      and your code page is set to CP437 (provided you have CP437 prepared; 
  2096.      otherwise your code page is not changed). 
  2097.  
  2098.      If you SET TERMINAL TYPE anything-but-ANSI after having SET TERMINAL TYPE 
  2099.      ANSI, your previous code page, TERMINAL BYTESIZE, COLOR, and CHARACTER-SET 
  2100.      are restored. 
  2101.  
  2102.  SET TERMINAL TRANSMIT-TIMEOUT seconds 
  2103.      During CONNECT mode (terminal emulation), if Kermit can't transmit your 
  2104.      keystrokes for some reason, it puts up a special status line saying 
  2105.      TRANSMISSION BLOCKED, and then shows a countdown timer.  When the 
  2106.      countdown timer expires, Kermit returns to the prompt.  This will happen, 
  2107.      for example, if you are using RTS/CTS flow control with a modem, and the 
  2108.      modem turns off its CTS signal (e.g. during retraining).  The countdown 
  2109.      timer is set to 15 seconds by default, but you can change it with SET 
  2110.      TERMINAL TRANSMIT-TIMEOUT. You can put the transmit timer on hold by 
  2111.      typing or holding down certain keys, such as the Alt key.  You can also 
  2112.      escape back to the prompt while the BLOCKED message is visible, but other 
  2113.      "hot key" functions are disabled. 
  2114.  
  2115.  SET TERMINAL WIDTH number 
  2116.      Number of columns to use in the terminal (CONNECT) screen. The supported 
  2117.      widths depend on your display adapter, the OS/2 version, and whether you 
  2118.      are in a fullscreen session or a window.  80 is normal, 132 is supported 
  2119.      by most VT100/220 applications, 40 can be used to get a bigger typeface. 
  2120.      The default width is the screen width of the session at startup. 
  2121.  
  2122.  SET TERMINAL DEBUG { ON, OFF } 
  2123.      Also known as SET DEBUG SESSION.  As of edit 190, this command can be used 
  2124.      to turn OS/2 C-Kermit's CONNECT command into a "software line analyzer" to 
  2125.      watch exactly what characters (or other information) is being received, 
  2126.      and also as a TELNET protocol analyzer: 
  2127.  
  2128.          TELNET negotiations are written out in highlighted words 
  2129.  
  2130.          C0 control characters (0 - 31) are displayed as the corresponding 
  2131.           letter (e.g. A for Ctrl-A), but using the underline-simulation color 
  2132.           (SET TERMINAL COLOR UNDERLINE foreground background). 
  2133.           Carriage-Return/Linefeed pairs are shown as MJ in underline color, 
  2134.           but also start a new line on the screen for readability. 
  2135.  
  2136.          DEL (127) is displayed as a question mark with underline coloring 
  2137.           (?). 
  2138.  
  2139.          C1 control characters (128 - 159) are displayed literally in the 
  2140.           current code page, but using underline color 
  2141.  
  2142.          Escape sequences are shown in reverse video. 
  2143.  
  2144.          All other characters are shown as is.  This means that characters 
  2145.           32-126 are shown as normal ASCII graphics; 160-255 are shown as 8-bit 
  2146.           graphics in the current code page. 
  2147.  
  2148.           Note:  Incoming 8th bits are still stripped if PARITY is not NONE or 
  2149.           if TERMINAL BYTESIZE is not 8.  If you want to see parity bits, SET 
  2150.           TERMINAL BYTESIZE 8, SET PARITY NONE. 
  2151.  
  2152.  Debug screens can be rolled back for quiet contemplation, and C-Kermit's 
  2153.  Print-Screen feature (Alt-P or <esc-char>F) and copy-and-paste features can be 
  2154.  used to record terminal debugging screens (even rolled-back ones) on the 
  2155.  printer or in a disk file, but, of course, the colors and highlighting are 
  2156.  lost. 
  2157.  
  2158.  The session debugging feature can be toggled on and off during terminal 
  2159.  emulation via Alt-D (\Kdebug), and the status is shown in the terminal-type 
  2160.  field of the status line ("DEBUG" replaces "VT102" or "VT52"). 
  2161.  
  2162.  
  2163. ΓòÉΓòÉΓòÉ 4.3.7. Using the Mouse ΓòÉΓòÉΓòÉ
  2164.  
  2165. Mouse support was added in edit 190 and then completely overhauled in edit 191. 
  2166. The original mouse functions were copy-and-paste and terminal cursor steering. 
  2167. In edit 191, these same features are assigned to the mouse by default, but: 
  2168.  
  2169.      Text selection can now span the entire virtual screen, including 
  2170.       scrollback. 
  2171.      You can reassign these functions to different mouse events. 
  2172.      You can assign them to keys. 
  2173.      You can assign keyboard verbs, macros, or text to mouse events. 
  2174.  
  2175.  C-Kermit's mouse actions all take place within the terminal screen, and they 
  2176.  are independent of the mouse actions in the OS/2 Window System Menu (Mark, 
  2177.  Copy, Paste, etc), which may also be used. 
  2178.  
  2179.  The mouse is enabled by default in edit 191.  The following command controls 
  2180.  whether the mouse is used in the terminal window: 
  2181.  
  2182.   SET MOUSE ACTIVATE { ON, OFF }
  2183.  
  2184.  So if you want the mouse to be ignored by C-Kermit (but still usable in the 
  2185.  normal OS/2 way), tell C-Kermit to SET MOUSE ACTIVATE OFF. 
  2186.  
  2187.  When the mouse is activated, you can use it to: 
  2188.  
  2189.      Mark text 
  2190.      Mark and copy text directly to the host 
  2191.      Mark and copy text to the OS/2 clipboard 
  2192.      Paste from the clipboard to the host 
  2193.      Position the terminal cursor 
  2194.      Transmit a text string 
  2195.      Execute any Kverb or macro definition 
  2196.  
  2197.  C-Kermit supports three types of mouse actions: Click, Double-Click, and Drag. 
  2198.  All drag operations activate mark mode and start the selection of text. Text 
  2199.  is marked "word processor" style, rather than rectangularly, so what you see 
  2200.  is what you get.  (Blank lines between consecutive marked paragraphs don't 
  2201.  show up as marked, but they are.) 
  2202.  
  2203.  If you don't like the colors used for displaying marked text, you can change 
  2204.  them with the new command: 
  2205.  
  2206.   SET TERMINAL COLOR SELECTION foreground background
  2207.  
  2208.  The color names are the same as for all the other SET TERMINAL COLOR commands. 
  2209.  
  2210.  As shipped, C-Kermit has the mouse set up as follows: 
  2211.  
  2212.  Copy to Clipboard 
  2213.      Press Button 1 and hold.  Drag the mouse to mark the text.  You can push 
  2214.      the mouse against the top of the screen to force the screen to scroll 
  2215.      back, thus allowing you to mark any contiguous block of text.  Release 
  2216.      Button 1 and the selected text is copied to the OS/2 Clipboard, and the 
  2217.      highlighting goes away. 
  2218.  
  2219.  Copy to Host 
  2220.      This works just like Copy to Clipboard, except you have to hold down the 
  2221.      Ctrl key until after the mouse button is released.  Instead of copying the 
  2222.      selected text to the Clipboard, Kermit sends it directly to the host when 
  2223.      you release the mouse button. 
  2224.  
  2225.  Paste To Host 
  2226.      Double-Click Button 2.  Text in the PM Clipboard is copied to the keyboard 
  2227.      buffer (if it was placed in the PM Clipboard by C-Kermit or any other 
  2228.      application that allocates its shared memory objects as "GETable") and 
  2229.      sent to the host. 
  2230.  
  2231.  Terminal Cursor Positioning 
  2232.      Double-Click Button 1.  Kermit tries to get the host application to move 
  2233.      the terminal cursor to where the mouse cursor is by sending the 
  2234.      appropriate number of arrow-key sequences. 
  2235.  
  2236.  All copy operations strip trailing spaces from the end of each marked line. 
  2237.  
  2238.  All "pastes" strip the line terminator from the last (or only) line. 
  2239.  
  2240.  Mouse-directed cursor movements send whatever the arrow keys would have sent 
  2241.  when pressed the number of times needed to move the terminal cursor to the 
  2242.  mouse cursor location.  By default, these are the VT terminal arrow key 
  2243.  sequences, according to the current cursor keypad mode.  If you redefine the 
  2244.  arrow keys to send something else (e.g. EMACS or VI up/down/left/right 
  2245.  commands), then the mouse will send those instead.  Arrow key sequences, 
  2246.  whether sent by pressing the arrow keys or with the mouse, only have the 
  2247.  desired effect if the host application software understands them. 
  2248.  
  2249.  
  2250. ΓòÉΓòÉΓòÉ 4.3.7.1. Reassigning Mouse Actions ΓòÉΓòÉΓòÉ
  2251.  
  2252. The following verbs are used to accomplish the functions that are assigned to 
  2253. mouse actions by default.  They are discussed in somewhat greater detail in 
  2254. Using Mark Mode from the Keyboard. 
  2255.  
  2256.  \KMarkCopyClip (drag button 1) 
  2257.      Marks and copies text to the Clipboard. 
  2258.  
  2259.  \Kpaste (double-click button 2) 
  2260.      Copy from Clipboard to host. 
  2261.  
  2262.  \KMarkCopyHost (Ctrl-drag button 1) 
  2263.      Marks and copies text directly to the host. 
  2264.  
  2265.  \KDump (no default assignment) 
  2266.      Marks and copies text to the SET PRINTER device or file. 
  2267.  
  2268.  \KMouseMark (no default assignment) 
  2269.      Marks text without copying it anywhere. 
  2270.  
  2271.  \KMouseCurPos (double-click button 1) 
  2272.      This is the mouse-directed-terminal-cursor feature. 
  2273.  
  2274.  You can use the new command: 
  2275.  
  2276.  SET MOUSE BUTTON number key action [ text ] 
  2277.  
  2278.  to change the mouse assignments, or to assign anything at all to a mouse 
  2279.  event, anything that you could assign with SET KEY to a key or key 
  2280.  combination: a character or string to be sent to the host, a keyboard verb 
  2281.  (other than the keyboard-specific mark-mode verbs), execution of a C-Kermit 
  2282.  macro, or any combination of these. 
  2283.  
  2284.  The number is the mouse button number, 1, 2, or 3. 
  2285.  
  2286.  The key field specifies any key modifiers: ALT, ALT-SHIFT, CTRL, CTRL-ALT, 
  2287.  CTRL-ALT-SHIFT, CTRL-SHIFT, NONE, or SHIFT. 
  2288.  
  2289.  The action field species the type of mouse action: CLICK, DRAG, or 
  2290.  DOUBLE-CLICK. 
  2291.  
  2292.  The text is what you are assigning to the given mouse action. It has exactly 
  2293.  the same properties as the text from the SET KEY command.  If the text is 
  2294.  omitted, any previous assignment is removed and the given mouse event will be 
  2295.  ignored.  Examples: 
  2296.  
  2297.   SET MOUSE BUTTON 1 NONE DOUBLE \KMouseCurPos
  2298.   SET MOU B 2 ALT CLICK help\13 ; sends "help" command to the host.
  2299.  
  2300.  DRAG actions enter mark mode and select text.  The only verbs that you should 
  2301.  assign to a drag action are \KMouseCopyHost, \KMouseCopyClip, and \KMouseDump. 
  2302.  
  2303.  Note:  You should be careful what you assign to single-click actions, since 
  2304.  they are executed whenever you use the mouse to click on the Kermit terminal 
  2305.  screen to bring it from the background to the foreground. 
  2306.  
  2307.  You can use the new command: 
  2308.  
  2309.  SHOW MOUSE 
  2310.  
  2311.  to check the activation status of the mouse and see what mouse events have 
  2312.  definitions assigned to them. 
  2313.  
  2314.  SET MOUSE CLEAR 
  2315.  
  2316.  restores all mouse event definitions to their default state. 
  2317.  
  2318.  
  2319. ΓòÉΓòÉΓòÉ 4.3.7.2. Using the OS/2 PM Clipboard ΓòÉΓòÉΓòÉ
  2320.  
  2321. As noted elsewhere, text can normally be pasted from the PM clipboard only if 
  2322. the application that put it there did so in a certain way, i.e. as a "GETable" 
  2323. shared memory object.  But not all applications do this. 
  2324.  
  2325. In the UTIL subdirectory of your OS/2 C-Kermit directory, you will find a 
  2326. program called CKOCLIP.EXE, the OS/2 C-Kermit PM Clipboard Server. CKOCLIP lets 
  2327. you paste any text at all from the Clipboard into C-Kermit's CONNECT screen via 
  2328. the \Kpaste verb. 
  2329.  
  2330. See OS/2 C-Kermit PM Clipboard Server for further information. 
  2331.  
  2332.  
  2333. ΓòÉΓòÉΓòÉ 4.3.8. Using Mark Mode from the Keyboard ΓòÉΓòÉΓòÉ
  2334.  
  2335. Mark mode is new to edit 191.  It gives the keyboard-only user a means of 
  2336. marking and copying text that was restricted to users of the mouse in edit 190. 
  2337. Mark mode is more powerful and flexible than the copy-and-paste feature of edit 
  2338. 190, allowing you to select arbitrary sized portions of text from anywhere 
  2339. within the current screen or the scrollback region. Marked text can be copied, 
  2340. transmitted, or printed. 
  2341.  
  2342. Each of the mark-mode actions - copy to clipboard, copy to host, copy to file - 
  2343. has a keyboard verb associated with it.  Marking and copying can be done 
  2344. entirely with keystrokes and no mouse, using the following \Kverbs (the default 
  2345. key assignment is shown in parentheses): 
  2346.  
  2347.  \KMarkStart (Ctrl-F1) 
  2348.      First press enters mark mode; second press starts marking text from the 
  2349.      current cursor position.  Additional presses clear all marked text and 
  2350.      start marking text from the current cursor position. 
  2351.  
  2352.  \KMarkCopyClip (Ctrl-Gray-Insert) 
  2353.      Copies all marked text to the PM Clipboard. 
  2354.  
  2355.  \KMarkCopyHost (Ctrl-Shift-Gray-Insert) 
  2356.      Copies all marked text directly to the host. 
  2357.  
  2358.  \KMarkCancel (Ctrl-F2) 
  2359.      Cancels mark mode without copying anything. 
  2360.  
  2361.  \KDump (Alt-p) 
  2362.      This is the regular \Kdump verb.  When invoked during mark mode, i.e. 
  2363.      while a selection is active, the selection (marked text) is dumped to the 
  2364.      SET PRINTER device or file. 
  2365.  
  2366.  \Kpaste (Shift-Gray-Insert) 
  2367.      Pastes (sends) text from the Clipboard to the host. 
  2368.  
  2369.  You can reassign these verbs to any other keys or key combinations in the 
  2370.  normal manner, using the SET KEY command. 
  2371.  
  2372.  While in mark mode all of the scrollback and arrow keyboard verbs are active 
  2373.  allowing you to select text a line at a time, a page at a time, or even the 
  2374.  entire rollback buffer in one shot. 
  2375.  
  2376.  Here, for example, is a key definition to select all text from the top of the 
  2377.  rollback buffer to the bottom of the active screen ("select all"): 
  2378.  
  2379.   set key \315 \Kmarkstart\Kend\Kmarkstart\Khome
  2380.  
  2381.  
  2382. ΓòÉΓòÉΓòÉ 4.3.9. Printing While in CONNECT Mode ΓòÉΓòÉΓòÉ
  2383.  
  2384. OS/2 C-Kermit offers the following printing features: 
  2385.  
  2386.      The PRINT command works (if you have a printer). 
  2387.      SET PRINTER filename allows transparent-print, autoprint, and \Kdump 
  2388.       material to be redirected to the specified file or device (32-bit version 
  2389.       only). 
  2390.      Files can be transferred to PRN in the 32-bit version only. 
  2391.      LOG SESSION PRN works in the 32-bit version. 
  2392.      The Print-Screen key prints the current terminal emulation screen in the 
  2393.       32-bit version.  If C-Kermit is running in a fullscreen session, 
  2394.       Print-Screen prints a text copy of the display; in a PM window, a 
  2395.       graphical copy of the whole PM screen is printed (if your printer is 
  2396.       capable of that).  This is an OS/2 feature, having nothing to do with 
  2397.       C-Kermit. 
  2398.      There is also a Print-Screen/Dump-Screen feature built into C-Kermit 
  2399.       5A(190) and later, that follows the SET PRINTER setting and works with 
  2400.       both the current screen and with rolled-back screens.  This feature is 
  2401.       activated by the CONNECT-mode escape character, normally Ctrl-], followed 
  2402.       by the letter F.  It is also accomplished by the keyboard verb, \Kdump, 
  2403.       which can be assigned to any key. 
  2404.      In edit 191, you can send the current selection in "mark mode" to the 
  2405.       printer. 
  2406.      The keyboard verb, \KprintFF, sends a formeed to the printer.  Most 
  2407.       printers eject the current page upon receipt of a formfeed.  Like all 
  2408.       keyboard verbs, it can be assigned to any key or key combination. 
  2409.      Host initiated "print current cursor line" and "print current screen" are 
  2410.       supported in the 32-bit version as of version 5A(190). 
  2411.      Host-initiated transparent (controller) print operations work correctly 
  2412.       in the 32-bit version. 
  2413.      Host-initiated auto print operations work correctly in the 32-bit version 
  2414.       as of version 5A(191). 
  2415.      As of version 5A(190), VT52 printer functions are also supported. 
  2416.  
  2417.  Note:  Print operations, when attempted on an OS/2 system that has no printer 
  2418.  installed, might hang the Kermit program if the OS/2 Spooler is not active. To 
  2419.  avoid this, use SET PRINTER to direct print data to a file or to the NUL 
  2420.  device if you don't have a printer. 
  2421.  
  2422.  As of edit 190, transparent-print material no longer appears on the screen; it 
  2423.  is directed exclusively to the printer (or print file), as on a real VT 
  2424.  terminal. 
  2425.  
  2426.  As of edit 190, there is a new screen copy facility.  It honors the current 
  2427.  SET PRINTER setting - i.e. the screen material goes either to the printer or 
  2428.  to a disk file, depending on SET PRINTER (the printer by default). To copy 
  2429.  either the current screen or a rolled-back screen use Alt-P (or Alt-p) or the 
  2430.  CONNECT-mode escape character followed by the letter F (or f). Characters are 
  2431.  dumped or printed "plain", without attributes (bold, reverse, underline, 
  2432.  blink, colors), and always in text (not graphics) mode, even in an OS/2 
  2433.  window. 
  2434.  
  2435.  Note:  In the following escape sequence listings, "ESC [" means the Escape 
  2436.  character (27) followed by a left bracket, OR, on an 8-bit connection, the CSI 
  2437.  character (155). 
  2438.  
  2439.  Other printer-control improvements: 
  2440.  
  2441.  ESC [0i         (and ESC [i) can be used to print the current screen. 
  2442.  ESC [?19h       sets the print region (for ESC [0i and ESC [i) to the whole 
  2443.                  screen. 
  2444.  ESC [?19l       sets the print region (ditto) to the current scrolling region. 
  2445.  ESC [?1i        prints the current cursor line. 
  2446.  ESC [?18h       means to send a formfeed after every print-screen operation 
  2447.  ESC [?18l       means NOT to send a formfeed after every print-screen 
  2448.                  operation 
  2449.  
  2450.  Printer control is now available in VT52 emulation also (edit 190): 
  2451.  
  2452.  ESC V           prints the current cursor line 
  2453.  ESC ]           prints the current screen 
  2454.  ESC W           starts transparent printing (also ESC ^) 
  2455.  ESC X           stops transparent printing (also ESC _) 
  2456.  
  2457.  
  2458. ΓòÉΓòÉΓòÉ 4.3.10. New Screen Capture Methods ΓòÉΓòÉΓòÉ
  2459.  
  2460. Prior to edit 191, there were two methods of screen capture: the LOG SESSION 
  2461. command and the \Kdump verb.  LOG SESSION copies all incoming characters to the 
  2462. session log file, and so requires no actions by the user except turning on the 
  2463. log and turning it off.  However, it has the disadvantage that the log file can 
  2464. be full of embedded escape sequences, e.g. when using a fullscreen application 
  2465. on the host.  \Kdump is just the opposite -- it requires you to act (e.g. press 
  2466. a key) each time you want to save a screen, but it copies the screen itself, 
  2467. after it has been formatted by the terminal emulator, thus filtering out the 
  2468. escape sequences and showing only the final results (except, of course, for 
  2469. color, intensity, etc). 
  2470.  
  2471. Unfortunately, neither method is entirely satisfactory for capturing large 
  2472. amounts of information from fullscreen host applications such as library 
  2473. catalog searches.  Either you must remember to "\Kdump" every screen, or else 
  2474. you will have a session log containing vast amounts of escape sequences that 
  2475. must be edited out before the information can be used. 
  2476.  
  2477. Edit 191 addresses this problem in two new ways.  First, you can mark an 
  2478. arbitrarily large region of the scrollback buffer and copy it to a file by 
  2479. using SET PRINTER filename and then using the \Kdump verb in mark mode, for 
  2480. example by assigning it to a mouse event: 
  2481.  
  2482. set printer library.log
  2483. set mouse button 2 none drag \Kdump
  2484.  
  2485. Now you can use the mouse to copy anything that is in the rollback buffer, no 
  2486. matter how big, to a file. 
  2487.  
  2488. But what if the material you want does not get into the rollback buffer in the 
  2489. first place?  This can happen with fullscreen applications that do not scroll 
  2490. and also do not clear the whole screen, since these are the only two ways that 
  2491. material gets into the rollback buffer.  Examples would be applications that 
  2492. keep a menu bar across the top of the screen and never erase it, or that scroll 
  2493. text within a "scrolling region" that does not occupy the full terminal screen. 
  2494. In such cases you can use the new VT220 "autoprint" feature, redirected to a 
  2495. file, to capture the data cleanly, without escape sequences: 
  2496.  
  2497. set printer library.log
  2498. set key \315 \KprtAuto
  2499.  
  2500. This assigns the "autoprint" verb to the F1 key.  The autoprint verb is a 
  2501. "toggle", meaning it turns autoprinting on if it is off, and it turns it off if 
  2502. it is on.  Thus successive presses of the autoprint key (F1 in this example) 
  2503. turn autoprinting on, off, on, off, etc. 
  2504.  
  2505. Autoprinting is defined as follows.  A screen line is sent to the printer (or 
  2506. the SET PRINTER file) whenever the cursor moves off the line with a linefeed, 
  2507. form feed, vertical tab, or autowrap.  So as long as lines are sent to the 
  2508. terminal emulator in a sensible sequence, they will appear in your log file (or 
  2509. on your printer) in a sensible and readable fashion. 
  2510.  
  2511.  
  2512. ΓòÉΓòÉΓòÉ 4.3.11. VT220 Emulation ΓòÉΓòÉΓòÉ
  2513.  
  2514. As of edit 191, C-Kermit supports VT220-level protected fields for 
  2515. forms-filling applications: 
  2516.  
  2517.       CSI Ps " q (Ps = 0, 1, 2) - select characters to be erasable or not 
  2518.       CSI ? Ps K (Ps = 0, 1, 2) - erase erasable characters in line 
  2519.       CSI ? Ps J (Ps = 0, 1, 2) - erase erasable characters in display 
  2520.  The VT220 DECID sequence sequence now properly reflects this and other new 
  2521.  capabilities. 
  2522.  
  2523.  As of edit 190, the VT102/220 emulator supports SRM (send/receive mode) 
  2524.  directives from the host: 
  2525.  
  2526.  ESC[12l   turns on local echoing 
  2527.  ESC[12h   turns off local echoing 
  2528.  
  2529.  And Kermit also now correctly responds to DECSCNM (screen mode) commands, 
  2530.  which apply to the entire current screen, rollback buffer, and subsequently 
  2531.  received characters: 
  2532.  
  2533.  ESC[?5l   puts the whole screen in reverse video 
  2534.  ESC[?5h   puts the whole screen in normal video 
  2535.  
  2536.  And to: 
  2537.  
  2538.  ESC F     DEC arrow & function keys send only 7-bit sequences 
  2539.  ESC G     DEC arrow & function keys can send 8-bit sequences 
  2540.  
  2541.  And it also supports the following VT220-and-above escape sequences for 
  2542.  turning off character attributes selectively: 
  2543.  
  2544.  ESC[22m         turns bold off 
  2545.  ESC[24m         turns (simulated) underline off 
  2546.  ESC[25m         turns (simulated) blink off 
  2547.  ESC[27m         turns reverse video off 
  2548.  ESC[28m         turns invisible off 
  2549.  ESC[?25h        enables the cursor 
  2550.  ESC[?25l        disables the cursor 
  2551.  
  2552.  As well as the VT220 DECDSR report requests (printer status, etc). 
  2553.  
  2554.  C-Kermit's VT220 emulation lacks the following VT220 features: 
  2555.  
  2556.      Various host-initiated printing controls (highly dependent on DEC 
  2557.       printers) 
  2558.  
  2559.            CSI ? 43 h/l - Large/normal characters 
  2560.            CSI ? 44 h/l - Color/monochrome 
  2561.            CSI ? 45 h/l - RGB vs HLS color system 
  2562.            CSI ? 46 h/l - Background+foreground/only-foreground to printer 
  2563.            CSI ? 47 h/l - Rotated/normal printing 
  2564.  
  2565.      Downline-Loadable Character sets (DRCS) (graphics mode would be required) 
  2566.  
  2567.      VT240 Tektronix, Sixel, or ReGIS graphics (graphics mode would be 
  2568.       required) 
  2569.  
  2570.      UDK's (can be done if there is a demand, but it might be tough finding 
  2571.       fifteen keys with unique and unused scan codes to map them to!). 
  2572.  
  2573.  
  2574. ΓòÉΓòÉΓòÉ 4.3.12. VT220 Character Sets ΓòÉΓòÉΓòÉ
  2575.  
  2576. Edit 191 adds support for the full range of VT220 character-set designation and 
  2577. invocation, plus additional features beyond the VT220 but specified in ISO 
  2578. standards.  It is beyond the scope of this document to go into deep technical 
  2579. detail.  Until the next edition of Using C-Kermit is published, you can consult 
  2580. the DEC VT220 technical manual, the book Using MS-DOS Kermit, and/or ISO 
  2581. standards 2022 and 4873. 
  2582.  
  2583. Very briefly, the new features allow the host to use escape sequences to 
  2584. "designate" a particular repertoire of character sets to be used, and then some 
  2585. other escape sequences (or control characters) to switch among them. You will 
  2586. probably find host applications that take advantage of these features only on 
  2587. VMS systems.  A typical setup might include ASCII (selected when a 7-bit 
  2588. character arrives), Latin-1 (selected when an 8-bit character arrives), and DEC 
  2589. Special Graphics (for line- and box-drawing, selected by single or locking 
  2590. shifts). 
  2591.  
  2592. Character sets can be designated by the host if they have either (a) ISO 
  2593. registered escape sequences (such as the 7-bit ISO 646 national versions and 
  2594. the 8-bit ISO Latin alphabets), or (b) DEC private escape sequences that are 
  2595. recognized by the VT220.  All others (primarily the proprietary sets used by 
  2596. IBM, Apple, HP, DG, etc) can only by selected by the SET TERMINAL CHARACTER-SET 
  2597. command. 
  2598.  
  2599. NOTE: Receipt of character-set escape sequences do NOT cause automatic 
  2600. code-page switching or font loading.  If they did, then the screen and the 
  2601. rollback buffer would instantly turn to garbage.  In general it is not possible 
  2602. to mix different "alphabets" sets on the same screen, such as Hebrew and 
  2603. Cyrillic, or Latin-2 and Latin-1. 
  2604.  
  2605. ANOTHER NOTE: The SET TERMINAL LOCKING-SHIFT command now applies only to 
  2606. outbound (keyboard) characters.  Locking shifts are always enabled for inbound 
  2607. characters. 
  2608.  
  2609.  
  2610. ΓòÉΓòÉΓòÉ 4.3.13. ANSI Terminal Emulation ΓòÉΓòÉΓòÉ
  2611.  
  2612. ANSI terminal emulation was added in version 5A(190).  Select it with: 
  2613.  
  2614. SET TERMINAL TYPE ANSI 
  2615.  
  2616. ANSI terminal emulation is a subset of VT100 emulation, but with 
  2617. host-controlled colors and using 8-bit IBM code-page 437 characters for line 
  2618. and box drawing, plus some unique escape sequences for cursor save/restore. 
  2619. ANSI terminal emulation is generally used to communicate with BBSs, and 
  2620. actually has nothing at all to do with ANSI (the American National Standards 
  2621. Institute); the misappropriated term "ANSI" seems to derive from the MS-DOS 
  2622. (and OS/2) ANSI.SYS console driver, itself misnamed.  C-Kermit supports ANSI 
  2623. terminal emulation as of edit 190, via SET TERMINAL TYPE ANSI.  You can find 
  2624. the specification for ANSI terminal emulation in the back of your DOS manual, 
  2625. in the ANSI.SYS appendix. 
  2626.  
  2627. C-Kermit's ANSI emulation does nothing special with the keys; in particular, 
  2628. there is no attempt at "PCTERM" keyboard handling, in which unique key-down and 
  2629. key-up sequences are transmitted separately for every single IBM key (including 
  2630. Shift, Alt, etc), apparently needed for the SCO UNIX console terminal (also 
  2631. called "DOORWAY mode)", but evidently not needed for BBS's. There is also no 
  2632. support for so-called ANSI music, which violates every conceivable rule (laid 
  2633. down by ANSI itself!) about the structure and form of escape sequences. 
  2634.  
  2635.  
  2636. ΓòÉΓòÉΓòÉ 4.3.14. Hebrew Terminal Emulation ΓòÉΓòÉΓòÉ
  2637.  
  2638. Use the following commands to enable Hebrew terminal emulation in OS/2 
  2639. C-Kermit: 
  2640.  
  2641. SET TERMINAL CODE-PAGE 862 or SET TERMINAL FONT CP862 
  2642. SET TERMINAL CHARACTER-SET { HEBREW-ISO, HEBREW-7, CP862 } 
  2643. SET TERMINAL BYTESIZE 8   ; Not needed for HEBREW-7 
  2644.  
  2645. (choose the character set that is appropriate for the host or service you are 
  2646. connecting to.)  Use SET TERMINAL CODE-PAGE 862 if your OS/2 system has the 
  2647. Hebrew National Language Support package installed; otherwise use SET TERMINAL 
  2648. FONT CP862 (which works only in fullscreen sessions). 
  2649.  
  2650. The following special features are available, over and above the ones listed in 
  2651. the Hebrew language support section in the International Character Sets section 
  2652. of this document: 
  2653.  
  2654.      The \KkbHebrew verb, which may be assigned to any key.  It switches the 
  2655.       main keypad (mostly the lowercase letters) into Hebrew mode (see keymap 
  2656.       below).  When the keyboard is in Hebrew mode, the terminal type in the 
  2657.       status line has "-H" appended to it, for example "VT220-H". 
  2658.  
  2659.      The \KkbEnglish verb to switch the main keypad back to English mode. 
  2660.  
  2661.      The \KkbHebrew function is performed automatically if the host 
  2662.       application sends CSI ? 35 h, and the \KkbEnglish function with CSI ? 35 
  2663.       l. 
  2664.  
  2665.      Hebrew keyboard mode is cleared when you execute the \Kreset (reset 
  2666.       terminal) function, assigned to Alt-r by default. 
  2667.  
  2668.  The Hebrew key layout associated with these verbs is NOT customizable.  It 
  2669.  follows follows the layout used by Hebrew WordPerfect, Windows, and Word. The 
  2670.  names of the Hebrew letters are from the ISO 8859-8 Standard.  These are the 
  2671.  key assignments when the keyboard is in Hebrew mode: 
  2672.  
  2673.   Hebrew Order             Roman Order              QWERTY Keyboard Order
  2674.     q = Slash                , = Taw                  q = Slash
  2675.     w = Apostrophe           . = Terminal Zade        w = Apostrophe
  2676.     ' = Comma                ' = Comma                e = Qoph
  2677.     / = Period               / = Period               r = Resh
  2678.     t = Aleph                ; = Terminal Pe          t = Aleph
  2679.     c = Bet                  a = Shin                 y = Tet
  2680.     d = Gimel                b = Nun                  u = Waw
  2681.     s = Dalet                c = Bet                  i = Terminal Nun
  2682.     v = He                   d = Gimel                o = Terminal Mem
  2683.     u = Waw                  e = Qoph                 p = Pe
  2684.     z = Zain                 f = Kaph                 a = Shin
  2685.     j = Chet                 g = Ayin                 s = Dalet
  2686.     y = Tet                  h = Yod                  d = Gimel
  2687.     h = Yod                  i = Terminal Nun         f = Kaph
  2688.     l = Terminal Kaph        j = Chet                 g = Ayin
  2689.     f = Kaph                 k = Lamed                h = Yod
  2690.     k = Lamed                l = Terminal Kaph        j = Chet
  2691.     o = Terminal Mem         m = Zade                 k = Lamed
  2692.     n = Mem                  n = Mem                  l = Terminal Kaph
  2693.     i = Terminal Nun         o = Terminal Mem         ; = Terminal Pe
  2694.     b = Nun                  p = Pe                   ' = Comma
  2695.     x = Samech               q = Slash                z = Zain
  2696.     g = Ayin                 r = Resh                 x = Samech
  2697.     ; = Terminal Pe          s = Dalet                c = Bet
  2698.     p = Pe                   t = Aleph                v = He
  2699.     . = Terminal Zade        u = Waw                  b = Nun
  2700.     m = Zade                 v = He                   n = Mem
  2701.     e = Qoph                 w = Apostrophe           m = Zade
  2702.     r = Resh                 x = Samech               , = Taw
  2703.     a = Shin                 y = Tet                  . = Terminal Zade
  2704.     , = Taw                  z = Zain                 / = Period
  2705.  
  2706.  To use OS/2 C-Kermit with host-based Hebrew software such as ALEPH (the Hebrew 
  2707.  University library software), give these commands to Kermit: 
  2708.  
  2709.   set terminal bytesize 8
  2710.   set term code-page 862             ; Or set term font cp862
  2711.   set term character-set hebrew-iso
  2712.   set key \319 \KkbHebrew            ; F5 = Enter Hebrew keyboard mode
  2713.   set key \320 \KkbEnglish           ; F6 = Enter English keyboard mode
  2714.   set key \321 \KdecF7               ; F7 = DEC F7 (used with ALEPH software)
  2715.  
  2716.  Of course, you can assign the \KkbHebrew, \KkbEnglish, and  \KdecF7  verbs to 
  2717.  any other keys of your choice. 
  2718.  
  2719.  
  2720. ΓòÉΓòÉΓòÉ 4.3.15. Russian Terminal Emulation ΓòÉΓòÉΓòÉ
  2721.  
  2722. As of edit 191, C-Kermit can be used to read and write Cyrillic text on the 
  2723. host in Russian, Ukrainian, or Belorussian, even if you don't have a Cyrillic 
  2724. code page on your PC.  The Cyrillic code page CP866 is used on the PC which may 
  2725. be loaded, in fullscreen sessions only, from PCFONTS.DLL.  Use the following 
  2726. commands to enable Russian terminal emulation in OS/2 C-Kermit: 
  2727.  
  2728. SET TERMINAL FONT CP866 
  2729. SET TERMINAL CHARACTER-SET { CYRILLIC-ISO, KOI8, SHORT-KOI, CP866 } 
  2730. SET TERMINAL BYTESIZE 8   ; Not needed for Short-KOI 
  2731.  
  2732. (choose the character set that is appropriate for the host or service you are 
  2733. connecting to.) 
  2734.  
  2735. The following special features are available: 
  2736.  
  2737.      The \KkbRussian verb, which may be assigned to any key.  It switches the 
  2738.       main keypad into Russian mode (see keymap below).  When the keyboard is 
  2739.       in Russian mode, the terminal type in the status line has "-R" appended 
  2740.       to it, for example "VT220-R". 
  2741.  
  2742.      The \KkbEnglish verb to switch the main keypad back to English mode. 
  2743.  
  2744.      Russian keyboard mode is cleared when you execute the \Kreset (reset 
  2745.       terminal) function, assigned to Alt-r by default. 
  2746.  
  2747.  If your OS/2 system does not include a Russian keyboard and driver, you may 
  2748.  use C-Kermit's Russian keyboard mode, which is inactive by default.  To use 
  2749.  it, you must assign the keyboard verbs: 
  2750.  
  2751.   \KkbRussian
  2752.   \KkbEnglish
  2753.  
  2754.  to the "hot keys" of your choice, for example: 
  2755.  
  2756.   set key \315 \KkbRussian  ; F1 enters Russian keyboard mode
  2757.   set key \316 \KkbEnglish  ; F2 enters English keyboard mode
  2758.  
  2759.  The Russian key layout associated with these verbs is NOT customizable.  It 
  2760.  follows follows the layout used by Microsoft Russian DOS and throughtout the 
  2761.  former USSR.  The names of the Cyrillic letters are from the ISO 8859-5 
  2762.  Standard.  The following table shows the key assignments when the keyboard is 
  2763.  in Russian mode.  If you do not like them, you can use SET KEY commands to 
  2764.  create your own layout.  The "code" is the CP866 value, which applies no 
  2765.  matter what the terminal character set is (Kermit will translate). 
  2766.  
  2767.   US key   Scan   Russian    Code   Equivalent SET KEY command
  2768.     `       96    io          241   SET KEY  \96 \241
  2769.     ~      126    Io          240   SET KEY \126 \240
  2770.     @       64    "            34   etc...
  2771.     #       35    No          252
  2772.     $       36    %            37
  2773.     ^       94    :            58
  2774.     q      113    i-kratkoye  169  (Lowercase Short i)
  2775.     Q       81    I-Kratkoye  137  (Uppercase Short I)
  2776.     w      119    tse         230
  2777.     W       87    Tse         150
  2778.     e      101    u           227
  2779.     E       69    U           147
  2780.     r      114    ka          170
  2781.     R       82    Ka          138
  2782.     t      116    ie          165
  2783.     T       84    Ie          133
  2784.     y      121    en          173
  2785.     Y       89    En          141
  2786.     u      117    ghe         163
  2787.     U       85    Ghe         131
  2788.     i      105    sha         232
  2789.     I       73    Sha         152
  2790.     o      111    shcha       233  See Note 1
  2791.     O       79    Shcha       153  See Note 1
  2792.     p      112    ze          167
  2793.     P       80    Ze          135
  2794.     [       91    ha          229
  2795.     {      123    Ha          149
  2796.     ]       93    hard sign   234  See Note 2
  2797.     }      125    Hard Sign   154  See Note 2
  2798.     \       92    /            47
  2799.     a       97    ef          228
  2800.     A       65    Ef          148
  2801.     s      115    yeri        235
  2802.     S       83    Yeri        155
  2803.     d      100    ve          162
  2804.     D       68    Ve          130
  2805.     f      102    a           160
  2806.     F       70    A           128
  2807.     g      103    pe          175
  2808.     G       71    Pe          143
  2809.     h      104    er          224
  2810.     H       72    Er          144
  2811.     j      106    o           174
  2812.     J       74    O           142
  2813.     k      107    el          171
  2814.     K       75    El          139
  2815.     l      108    de          164
  2816.     L       76    De          132
  2817.     ;       59    e           237
  2818.     :       58    E           157
  2819.     z      122    ya          239
  2820.     Z       90    Ya          159
  2821.     x      120    che         231
  2822.     X       88    Che         151
  2823.     c       99    es          225
  2824.     C       67    Es          145
  2825.     v      118    em          172
  2826.     V       86    Em          140
  2827.     b       98    i           168
  2828.     B       66    I           136
  2829.     n      110    te          226
  2830.     N       78    Te          146
  2831.     m      109    soft sign   236
  2832.     M       77    Soft Sign   156
  2833.     ,       44    be          161
  2834.     <       60    Be          129
  2835.     .       46    yu          238
  2836.     >       62    Yu          158
  2837.     /       47    .            46
  2838.     ?       63    ,            44
  2839.  
  2840.  Note 1:  On Belorussian keyboards, upper and lowercase letter shcha is 
  2841.  replaced by upper and lowercase Cyrillic letter I (the one that looks just 
  2842.  like a Roman I, not the one that looks like a backward Roman N).  This letter 
  2843.  does not exist in code page 866, but you can substitute Roman letter I if 
  2844.  desired. 
  2845.  
  2846.  Note 2:  On Belorussian keyboards, upper and lowercase hard sign is replaced 
  2847.  by upper and lowercase Belorussian letter Short U: 
  2848.  
  2849.   SET KEY  \93 \247  ; Map ] to lowercase Short u
  2850.   SET KEY \125 \246  ; Map } to uppercase Short U
  2851.  
  2852.  On Ukrainian keyboards, these same keys are mapped to Ukrainian letter Yi 
  2853.  (looks like Roman I with two dots instead of one): 
  2854.  
  2855.   SET KEY  \93 \244  ; Map ] to lowercase yi
  2856.   SET KEY \125 \245  ; Map } to uppercase Yi
  2857.  
  2858.  See Table VIII-6 in Using C-Kermit, pp.470-473 for complete Cyrillic 
  2859.  character-set listings for ISO 8859-5, CP866, KOI-8, and Short KOI. 
  2860.  
  2861.  To define your own Cyrillic key map, create a file containing the desired SET 
  2862.  KEY commands, in which the assigned values are CP866 values.  Let's say this 
  2863.  file is called C:\CKERMIT\RUSSKEY.INI.  Then create a second file called 
  2864.  C:\CKERMIT\ENGLISH.INI, which contains SET KEY commands to undo the settings 
  2865.  from RUSSKEY.INI, for example: 
  2866.  
  2867.   SET KEY \97
  2868.   SET KEY \98
  2869.  
  2870.  etc.  Now you can define macros to TAKE these files: 
  2871.  
  2872.   DEFINE RUSSKEY take c:\ckermit\russkey.ini
  2873.   DEFINE ENGLISH take c:\ckermit\english.ini
  2874.  
  2875.  and then you can assign them to hot keys, as in this example: 
  2876.  
  2877.   SET KEY \315 \Krusskey  ; F1 loads Russian key map
  2878.   SET KEY \316 \Kenglish  ; F2 loads English key map
  2879.  
  2880.  
  2881. ΓòÉΓòÉΓòÉ 4.3.16. Screen Rollback ΓòÉΓòÉΓòÉ
  2882.  
  2883. As of edit 191, rollback has undergone a major revision. 
  2884.  
  2885. Rollback has two modes: SET TERMINAL ROLL-MODE INSERT and SET TERMINAL 
  2886. ROLL-MODE OVERWRITE.  When ROLL-MODE is INSERT (the default) all incoming data 
  2887. is added to its proper place in your session, normally at the end (bottom) of 
  2888. the screen buffer, regardless of what part of the buffer you are currently 
  2889. looking at.  Thus, when you are rolled back, you will not see newly arriving 
  2890. characters until you return to the end (bottom) of your session, e.g. by 
  2891. pressing the End key, or pressing Page Down the appropriate number of times. 
  2892. This mode keeps your entire session history "intact" -- a sequential visual 
  2893. history of your terminal session. 
  2894.  
  2895. When ROLL-MODE is OVERWRITE, incoming data overwrites the screen you are 
  2896. looking at, even if it is a rolled-back screen. 
  2897.  
  2898. In either mode, you are able to type to host, paste to the host, copy to the 
  2899. host, etc.  In other words, you can do everything in a rolled-back screen that 
  2900. you could do in the current (bottom, non-rolled-back) screen. If you are rolled 
  2901. back when you issue the \KExit kverb (Alt-X), the next time you connect you 
  2902. will be restored to the previous location in the buffer. 
  2903.  
  2904. When the screen is rolled back the status line says SCROLLBACK and a line 
  2905. counter indicates how many lines you are rolled back, out of how many possible. 
  2906.  
  2907. Previous edits of OS/2 C-Kermit had SET TERMINAL ROLL { ON, OFF }.  The former 
  2908. ON setting is equivalent to the current INSERT mode, and the former OFF setting 
  2909. is the same as OVERWRITE mode.  The old commands are still accepted. 
  2910.  
  2911.  
  2912. ΓòÉΓòÉΓòÉ 4.3.17. Screen Width and Height ΓòÉΓòÉΓòÉ
  2913.  
  2914. You can use 132 columns in a fullscreen session if your video adapter supports 
  2915. it, and you can also have 132 columns in a window session if you are running 
  2916. Warp.  Issue the command: 
  2917.  
  2918. C-Kermit> set terminal width 132
  2919.  
  2920. at the C-Kermit prompt.  You can switch back to 80-column mode via: 
  2921.  
  2922. C-Kermit> set terminal width 80
  2923.  
  2924. As of edit 191, host-directed switching between 80-column and 132-column mode 
  2925. is supported in fullscreen sessions, and also, under Warp only, in a window. 
  2926. The escape sequences are: 
  2927.  
  2928. <ESC> [ ? 3 h   Switch to 132 columns
  2929. <ESC> [ ? 3 l   Switch to 80 columns
  2930.  
  2931. This capability is properly announced in the DECID report for VT100 and above. 
  2932. Kermit uses whatever screen size its window is using at the time Kermit is 
  2933. started.  In edit 191, you can also have Kermit set the terminal screen height 
  2934. explicitly: 
  2935.  
  2936. C-Kermit> set terminal height 42
  2937.  
  2938. This command affects only the terminal (CONNECT) screen, not the command window 
  2939. itself. 
  2940.  
  2941. The height is the number of lines in the terminal screen, not counting the 
  2942. status line.  Under Warp, in a window session, any combination of width and 
  2943. height with a maximum screen area of 8192 characters can be given. In a 
  2944. fullscreen session, heights may be 24, 42, 49, or 59; not all combinations are 
  2945. supported by all video adapters. Warp is not required. 
  2946.  
  2947. Warning:   Terminal widths of 80 and 132 are recommended, since these are the 
  2948. only two standard widths for VT terminal emulation.  Under Warp, however, you 
  2949. may choose arbitrary widths, but this can lead to problems. For example, if you 
  2950. choose a width that is not a multiple of 8, and you have TERMINAL WRAP ON, and 
  2951. the host sends a tab-setting sequence that goes beyond the right edge of your 
  2952. screen, it will wrap around and mess up your tab settings.  (You can restore 
  2953. tab settings to the default setting of every 8 spaces across your screen by 
  2954. pushing the "reset button", normally Alt-r). 
  2955.  
  2956.  
  2957. ΓòÉΓòÉΓòÉ 4.3.18. Other Terminal Emulation Changes ΓòÉΓòÉΓòÉ
  2958.  
  2959. Other OS/2 C-Kermit terminal emulation improvements and changes (edit 190) are 
  2960. listed here: 
  2961.  
  2962.      Many bugs relating to character attributes, rollback, etc, fixed. 
  2963.  
  2964.      SET TERMINAL COLOR REVERSE is no longer operative; reverse video is now 
  2965.       reverse video, period - the foreground and background colors are 
  2966.       exchanged. More about this in the Questions and Answers section. 
  2967.  
  2968.      Host-directed switching between US ASCII and UK ISO 646 (number sign / 
  2969.       Pound Sterling sign) reactivated, but only if TERMINAL CHARACTER-SET is 
  2970.       ASCII. All other character-set selections must be accomplished by SET 
  2971.       TERMINAL CHARACTER-SET commands. 
  2972.  
  2973.      The CONNECT command now prints a helpful hint if it fails because of "No 
  2974.       carrier detected." 
  2975.  
  2976.      CLEAR TERMINAL-SCREEN (edit 191) copies the current terminal screen into 
  2977.       the scrollback buffer and then clears it. 
  2978.  
  2979.      CLEAR SCROLLBACK (edit 191) clears (erases) the scrollback buffer. 
  2980.  
  2981.  
  2982. ΓòÉΓòÉΓòÉ 4.3.19. Frequently Asked Questions - Terminal Emulation ΓòÉΓòÉΓòÉ
  2983.  
  2984.  Q:  I tried to CONNECT to my modem and C-Kermit popped back to the prompt 
  2985.      right away, saying "No carrier detected". 
  2986.  
  2987.  A:  C-Kermit's default handling of carrier is to not require it during 
  2988.      DIALing, but to require it at other times.  If you CONNECT to a modem 
  2989.      before you have a dialed connection, there is no carrier signal, so i/o 
  2990.      operations fail.  If you need to CONNECT to a serial device that does not 
  2991.      present the carrier signal (for example, to dial a modem "manually"), 
  2992.      first tell C-Kermit to SET CARRIER OFF. 
  2993.  
  2994.  Q:  My Backspace key doesn't work! 
  2995.  
  2996.  A:  Kermit's backspace key sends DEL (ASCII 127) by default. Some host 
  2997.      applications prefer Backspace (BS, ASCII 8).  To make your Backspace key 
  2998.      send Backspace, give this command: 
  2999.  
  3000.           set key \127 \8
  3001.  
  3002.  Q:  Does C-Kermit support multiple sessions? 
  3003.  
  3004.  A:  No. If you SET PORT 1 and make a connection, and escape back and SET PORT 
  3005.      2, the connection on port 1 is closed, dropped, and hung up.  The same 
  3006.      happens for network sessions.  To achieve multiple C-Kermit sessions, run 
  3007.      separate copies in different OS/2 windows.  As of edit 190, C-Kermit will 
  3008.      put a unique identifier in the window list for each session, such as 
  3009.      "C-Kermit COM1", "C-Kermit COM2", "C-Kermit xyzcorp.com", etc. If you have 
  3010.      TCP/IP installed on your OS/2 system, you can set up a SLIP connection, 
  3011.      and then you can run multiple copies of C-Kermit over it, using C-Kermit's 
  3012.      TELNET command to make the connections.  This lets you achieve multiple 
  3013.      sessions over a single serial port, a single modem, and a single phone 
  3014.      call. 
  3015.  
  3016.  Q:  When I run C-Kermit with VT220 emulation to access either the DEC EVE 
  3017.      (EDIT/TPU) editor or DEC VAX Notes, the screen is filled with gibberish 
  3018.      like "m0lJ3l24rl6l7l8h;2'z;3'{4;H'z;H;H". 
  3019.  
  3020.  A:  Either tell C-Kermit to SET TERMINAL BYTESIZE 8 or tell VMS to SET 
  3021.      TERMINAL /NOEIGHT. 
  3022.  
  3023.  Q:  How do I get Kermit to simulate all the functions of a DEC VT220 keyboard, 
  3024.      including arrow keys, numeric keypad, Gold key, PF keys, F keys, etc? 
  3025.  
  3026.  A:  TAKE the CKOVTK2.INI file that is distributed with C-Kermit.  Read the 
  3027.      file to find out which PC key is mapped to which DEC key.  If you don't 
  3028.      like the mapping, edit the file to suit your taste.  If you always want 
  3029.      these mappings in effect, put the command "take c:\ckermit\ckovtk2.ini" in 
  3030.      your CKERMOD.INI file (or whatever your C-Kermit directory is) (Note: The 
  3031.      install script will do this for you if you say Yes.) 
  3032.  
  3033.  Q:  Key mapping does not work as described in Appendix V of Using C-Kermit 
  3034.  
  3035.  A:  That's right.  In version 5A(190) and later it works just like in MS-DOS 
  3036.      Kermit, using \Kverbs that can be assigned to any key.  See key mapping 
  3037.      for a complete description of the new key mapping method, or read the 
  3038.      material on key mapping in Using MS-DOS Kermit, but note that there are 
  3039.      some differences between MS-DOS Kermit's and C-Kermit's keyboard scan 
  3040.      codes. 
  3041.  
  3042.  Q:  The SET TERM COLOR REVERSE command is gone!  Version 190 now says "Sorry, 
  3043.      this command has been retired.  Reverse video is now accomplished simply 
  3044.      by exchanging the fore- and background colors."  I prefer the ability to 
  3045.      set reverse video to whichever color scheme I wish. 
  3046.  
  3047.  A:  The old way was simply not workable - it appeared to work only by 
  3048.      accident.  When all the VT100 features were fixed and VT220 and ANSI 
  3049.      features were added, plus the cell-coloring extensions, there was no way 
  3050.      to keep this feature.  Color is used not only for regular characters, but 
  3051.      also to denote underlining, blinking, and (naturally) also for 
  3052.      explicitly-colored characters.  So it makes no sense to have one fore- and 
  3053.      background color for reverse video.  How, for example, does one flip the 
  3054.      screen between normal video and reverse video when it has 128 different 
  3055.      colors showing if there is only one fore/background color for reverse 
  3056.      video? Note that screen-video-flipping is a required feature of VT100 and 
  3057.      higher DEC terminals (DECSCNM = ESC [ ? 5 h/l). 
  3058.  
  3059.  Q:  Reverse video doesn't always seem to actually reverse fore/background 
  3060.      colors. For example, if I have the terminal set to black on white, reverse 
  3061.      video comes out a rather muddy light gray on dark gray. If the terminal is 
  3062.      set to light gray on dark gray, reverse is black on white.  If the 
  3063.      terminal is black on light gray, reverse video really is reverse. 
  3064.  
  3065.  A:  The explanation for this is a bit technical. The video adapter stores each 
  3066.      screen character in a two-byte cell.  The first byte of each cell contains 
  3067.      the 8-bit character value.  The second byte contains the video attributes 
  3068.      for the character, and looks like this: 
  3069.  
  3070.                     Background |    Foreground
  3071.                     Color      |    Color
  3072.                +---+---+---+---+---+---+---+---+
  3073.                | b | R | G | B | i | R | G | B |
  3074.                +---+---+---+---+---+---+---+---+
  3075.                  b = blink       i = intensity
  3076.                  0 = nonblinking 0 = normal
  3077.                  1 = blinking    1 = high
  3078.  
  3079.      The i bit applies to the foreground color.  The meaning of the b bit 
  3080.      depends on the VIO state; it can mean (a) the foreground character blinks, 
  3081.      or (b) the background color is high-intensity.  C-Kermit uses (b) because 
  3082.      blinking only works in a fullscreen session.  The RGB bits select the 
  3083.      desired mixture of Red, Green, and Blue. 
  3084.  
  3085.  When video is reversed, only the colors-the RGB bits and not the i or b bits 
  3086.  are swapped.  Otherwise, we would obtain effects that are even more surprising 
  3087.  and undesirable: highlighted characters would no longer be highlighted, etc. 
  3088.  If blinking were implemented by real blinking rather than color simulation, 
  3089.  then a bright foreground could become a blinking foreground, etc.  The 
  3090.  confusion arises because many of the colors in the SET TERMINAL COLOR command 
  3091.  are not "true" (3-bit) colors, but rather effects obtained with the 
  3092.  high-intensity bit as shown in the Table in the Terminal Emulation Hints and 
  3093.  Tips section.  If you stick to non-intense colors in your terminal screen, 
  3094.  then reverse video will work as expected. 
  3095.  
  3096.  Q:  Is it possible to quit Kermit and NOT have the phone line hung up? That 
  3097.      is, quit out of Kermit leaving the modem connection open, so I can then 
  3098.      start SLIP? 
  3099.  
  3100.  A:  Normally when an OS/2 process exits, all of its file handles are closed. 
  3101.      One of the penalties we pay for using a real operating system, as opposed 
  3102.      to (say) DOS.  But there are two exceptions.  If you start Kermit with an 
  3103.      already-open file handle for the communications device, it will not be 
  3104.      closed when Kermit exits.  Second, if you use Kermit's SLIPCOMx devices, 
  3105.      you can "borrow" a terminal port from the SLIP driver in order to make the 
  3106.      phone connection, and then give it back to the SLIP driver.  See the 
  3107.      section on SLIP for details. 
  3108.  
  3109.  Q:  What does "TRANSMISSION BLOCKED: 15" mean? 
  3110.  
  3111.  A:  When you are typing normal characters in CONNECT mode, C-Kermit should 
  3112.      normally have no trouble transmitting them.  An exception occurs on dialed 
  3113.      serial connections with RTS/CTS flow control when the modem might drop its 
  3114.      CTS (Clear To Send) signal because of noise on the connection that causes 
  3115.      the two modems to enter a "retraining" sequence.  If you type a character 
  3116.      under these conditions, C-Kermit will write "TRANSMISSION BLOCKED 15" in 
  3117.      the status line, and then will attempt to retransmit the character every 
  3118.      100 milliseconds for up to 15 seconds (the "15" is a countdown timer).  If 
  3119.      the countdown timer expires, C-Kermit returns to the prompt with a message 
  3120.      like: 
  3121.  
  3122.           Serial port blocked
  3123.           Tx waiting for CTS to be turned ON
  3124.  
  3125.      (the second line tells you the reason for the blockage).  Fifteen seconds 
  3126.      is usually long enough for modems to retrain, but you can increase (or 
  3127.      diminish) the retransmission timeout interval using the command: 
  3128.  
  3129.      SET TERMINAL TRANSMIT-TIMEOUT seconds 
  3130.  
  3131.      You can put the transmit timer on hold by typing or holding down certain 
  3132.      keys, such as the Alt key.  You can also escape back to the prompt while 
  3133.      the BLOCKED message is visible, but other "hot key" functions are 
  3134.      disabled. Note that the BLOCKED message might not appear right away - 
  3135.      depending on the buffering capabilities of the UART and the configuration 
  3136.      of the OS/2 communication port driver, a transmission error might not be 
  3137.      reported back to C-Kermit by OS/2 until the second or later blocked 
  3138.      character. 
  3139.  
  3140.  
  3141. ΓòÉΓòÉΓòÉ 4.3.20. Terminal Emulation Hints and Tips. ΓòÉΓòÉΓòÉ
  3142.  
  3143. When switching away from C-Kermit's terminal screen and then switching back to 
  3144. it, certain video items might become confused: 
  3145.  
  3146.      The cursor might be lost or misplaced 
  3147.      The entire screen might be blinking (more about this below) 
  3148.      The screen border might have disappeared 
  3149.      Colors might have changed 
  3150.  
  3151.  These problems appear to be confined only to certain systems, and do not occur 
  3152.  on others.  It is believed that they are related to the particular video 
  3153.  adapter or driver; the problems are most commonly reported on SVGA and XGA 
  3154.  systems.  You can usually work around these problems in various ways: 
  3155.  
  3156.      Use Alt-R to reset the terminal emulator 
  3157.      Escape back to the prompt and CONNECT again 
  3158.      Escape back to the prompt, PUSH, EXIT, and CONNECT again 
  3159.      Escape back to the prompt, run MODE CO80 (or whatever), and CONNECT again 
  3160.  
  3161.  SET TERMINAL CODE PAGE only seems to work in fullscreen sessions.  For that 
  3162.  matter, the same seems to be true of OS/2's own CHCP program, so this is 
  3163.  apparently an OS/2 limitation (noted in OS/2 2.1 GA). 
  3164.  
  3165.  SET TERMINAL CODE PAGE (and OS/2's own CHCP program) seem to have no effect at 
  3166.  all when the Hebrew NLV is installed.  The code page simply does not change. 
  3167.  
  3168.  Shift-in/Shift-Out works only if you SET TERMINAL LOCKING-SHIFT ON (except in 
  3169.  the case of the DEC Technical Character Set, used for line- and box- drawing, 
  3170.  etc, which is handled specially). 
  3171.  
  3172.  Host-directed US/UK character-set switching (ASCII 35 interpreted as number 
  3173.  sign in US, Pound Sterling sign in UK) works only if you have SET TERM 
  3174.  CHARACTER-SET ASCII. 
  3175.  
  3176.  Under certain conditions on certain systems, OS/2 C-Kermit has been observed 
  3177.  to put the entire screen (or subsequent help screens) in blinking mode.  For 
  3178.  example, when running in a fullscreen session, CONNECT mode active, background 
  3179.  color is high-intensity, and using Alt-Esc to get to the desktop, then 
  3180.  resuming the Kermit window can produce this effect; reportedly, this is caused 
  3181.  by a bug in some of OS/2's video drivers.  Alt-R (reset) makes the blinking 
  3182.  stop.  To avoid the problem altogether, don't use high-intensity background 
  3183.  colors: 
  3184.  
  3185.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3186.   ΓöéName      ΓöéIntensity ΓöéRemarks       Γöé
  3187.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3188.   ΓöéBLACK     ΓöéNormal    Γöé              Γöé
  3189.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3190.   ΓöéBLUE      ΓöéNormal    Γöé              Γöé
  3191.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3192.   ΓöéBROWN     ΓöéNormal    Γöé              Γöé
  3193.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3194.   ΓöéCYAN      ΓöéNormal    Γöé              Γöé
  3195.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3196.   ΓöéDGRAY     ΓöéHigh      ΓöéDark gray     Γöé
  3197.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3198.   ΓöéGREEN     ΓöéNormal    Γöé              Γöé
  3199.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3200.   ΓöéLBLUE     ΓöéHigh      ΓöéLight gray    Γöé
  3201.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3202.   ΓöéLCYAN     ΓöéHigh      ΓöéLight cyan    Γöé
  3203.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3204.   ΓöéLGRAY     ΓöéNormal    Γöé              Γöé
  3205.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3206.   ΓöéLGREEN    ΓöéHigh      ΓöéLight green   Γöé
  3207.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3208.   ΓöéLMAGENTA  ΓöéHigh      ΓöéLight magenta Γöé
  3209.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3210.   ΓöéLRED      ΓöéHigh      ΓöéLight red     Γöé
  3211.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3212.   ΓöéMAGENTA   ΓöéNormal    Γöé              Γöé
  3213.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3214.   ΓöéRED       ΓöéNormal    Γöé              Γöé
  3215.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3216.   ΓöéWHITE     ΓöéHigh      Γöé              Γöé
  3217.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3218.   ΓöéYELLOW    ΓöéHigh      Γöé              Γöé
  3219.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3220.  
  3221.  
  3222. ΓòÉΓòÉΓòÉ 4.4. File Transfer ΓòÉΓòÉΓòÉ
  3223.  
  3224. New file transfer features include: 
  3225.  
  3226.       File Transfer Recovery 
  3227.       Control-Character Unprefixing 
  3228.       New MOVE Command 
  3229.       New RECEIVE Command Features 
  3230.       Automatic Directory Creation 
  3231.       IBM Mainframe File Transfer 
  3232.       Pausing Between Packets 
  3233.       Fullscreen File Transfer Display Improvements 
  3234.       Transferring OS/2 Files with Attributes 
  3235.       Transferring OS/2 Directory Trees 
  3236.       File Transfer Hints and Tips 
  3237.  
  3238.  
  3239. ΓòÉΓòÉΓòÉ 4.4.1. File Transfer Recovery ΓòÉΓòÉΓòÉ
  3240.  
  3241. C-Kermit 5A(190) (the OS/2, UNIX, AOS/VS, VOS, OS-9, and Amiga versions), and 
  3242. MS-DOS Kermit 3.14, and IBM mainframe Kermit 4.3.1 have the ability to continue 
  3243. interrupted binary-mode file transfers, and also allow you to "manually" 
  3244. recover from certain other types of failures. 
  3245.  
  3246.       The RESEND Command 
  3247.       Manual Recovery: The PSEND Command 
  3248.  
  3249.  
  3250. ΓòÉΓòÉΓòÉ 4.4.1.1. The RESEND Command ΓòÉΓòÉΓòÉ
  3251.  
  3252. The new RESEND command lets you continue a file transfer from the point where 
  3253. it was interrupted (for example, because of a telephone disconnection) without 
  3254. having to retransmit the data that was already successfully transmitted. 
  3255. Imagine, for example, transferring a ten-megabyte file over a 2400-bps modem 
  3256. connection when, after 9 megabytes have been sent, your call-waiting feature 
  3257. kicks in and drops the modem connection.  9 megabytes at 240 cps takes about 11 
  3258. hours.  The remaining megabyte would take about 1.2 hours.  The recovery 
  3259. feature lets you complete the failed transfer in the amount of time it takes to 
  3260. send the as-yet-untranmsitted part of the file, rather than sending the entire 
  3261. file again from the beginning -- in this example, a savings of 11 hours. 
  3262.  
  3263. Before seeing how to use this feature, let's look at the restrictions: 
  3264.  
  3265.    1. Recovery works only for binary-mode transfers between computers that have 
  3266.       stream-oriented file systems (such as DOS, UNIX, OS/2, etc).  It does not 
  3267.       work with any other transfer modes, including text or labeled. In other 
  3268.       words, if you want to be able to use the recovery feature, you must tell 
  3269.       the file sender to: 
  3270.  
  3271.       SET FILE TYPE BINARY 
  3272.  
  3273.    2. The original transfer must have been done with SET FILE INCOMPLETE KEEP 
  3274.       in effect at the receiver, meaning that incompletely received files are 
  3275.       kept rather than discarded.  In C-Kermit 5A(190) and later, this is the 
  3276.       default, which is a change from previous releases. 
  3277.  
  3278.    3. Recovery only works between two Kermit programs that have this capability 
  3279.       and negotiate it successfully.  As of this writing, these programs 
  3280.       include C-Kermit 5A(190) and later for UNIX, OS/2, Stratus VOS, OS-9, and 
  3281.       the Commodore Amiga; MS-DOS Kermit 3.14 and later for DOS and Windows; 
  3282.       and IBM Mainframe Kermit 4.3.1 and later. 
  3283.  
  3284.    4. You should never use SET FILE COLLISION RENAME if you intend to use the 
  3285.       recovery feature, because the partially received file will have the wrong 
  3286.       name. 
  3287.  
  3288.  To recover a failed upload: reestablish the connection, access the same 
  3289.  account and directory to which you were sending the file previously, start 
  3290.  Kermit there and put it in RECEIVE or SERVER mode.  Then escape back to the 
  3291.  local Kermit program and give it these commands: 
  3292.  
  3293.  SET FILE TYPE BINARY 
  3294.  RESEND filename [ as-name ] 
  3295.  
  3296.  The RESEND command should use exactly the same names (and SET FILE NAME 
  3297.  options) as the SEND command that was interrupted.  When you RESEND a file, 
  3298.  the receiving Kermit, upon getting the filename, looks up the file and gets 
  3299.  its size; it sends the size back to the sending Kermit, and the sending Kermit 
  3300.  resumes sending from that point; the receiving Kermit appends incoming 
  3301.  material to the partial file rather than creating a new file. 
  3302.  
  3303.  You can recover a failed download in the same way.  Just make sure you are 
  3304.  accessing the same directories as before, and the files have (or are being 
  3305.  sent with) the same names as before. 
  3306.  
  3307.  The RESEND command ignores your SET FILE COLLISION setting; thus you need not 
  3308.  change your FILE COLLISION setting when RESENDing, and you will not find it 
  3309.  altered afterwards either.  (But please, as mentioned earlier, do not use SET 
  3310.  FILE COLLISION RENAME if you ever intend to use the RESEND command.) 
  3311.  
  3312.  If the RESEND command is used, but a partial file of the same name does not 
  3313.  exist on the receiving end, RESEND behaves just like SEND -- it sends the 
  3314.  whole file.  If the file on the receiving is the same size as the sender's 
  3315.  copy, RESEND does nothing; both files are left alone.  These properties let 
  3316.  you resume the interrupted transfer of a group of files.  Suppose you had 
  3317.  originally done this: 
  3318.  
  3319.   Receiver:                         Sender:
  3320.    SET FILE INCOMPLETE KEEP          SET FILE TYPE BINARY
  3321.    RECEIVE (or SERVER)               SEND *.ZIP
  3322.  
  3323.  and the phone hung up in the middle of one of the ZIP files.  Just reestablish 
  3324.  the connection, and recover this way: 
  3325.  
  3326.   Receiver:                         Sender:
  3327.    SET FILE INCOMPLETE KEEP          SET FILE TYPE BINARY
  3328.    RECEIVE (or SERVER)               RESEND *.ZIP
  3329.  
  3330.  The files that were already sent are skipped, the file that was partially sent 
  3331.  is recovered, and the files that were not sent yet are sent. 
  3332.  
  3333.  In order for the recovery feature feature to be useful at all, the default for 
  3334.  SET FILE INCOMPLETE was changed from DISCARD to KEEP when the RESEND command 
  3335.  was added in edit 190.  Otherwise an interrupted transfer would leave no 
  3336.  partial file behind unless you had remembered to change the default.  But now 
  3337.  you have to pay closer attention to Kermit's messages to know whether a 
  3338.  transfer succeeded or failed -- previously, if it failed, the file would not 
  3339.  show up on the receiving end at all; in edit 190 and later, you'll get a 
  3340.  partial file which could easily be mistaken for the complete file unless you 
  3341.  change the default back to DISCARD or read the screen messages, or keep a 
  3342.  transaction log. 
  3343.  
  3344.  Watch out for SET FILE COLLISION RENAME, especially when used in conjunction 
  3345.  with recovery.  Recall that this option (which is NOT the default) renames the 
  3346.  incoming file if a file already exists with the same name (the default is to 
  3347.  rename the previously existing file, and store the incoming file with its own 
  3348.  name).  It is strongly recommended that you do not use SET FILE COLLISION 
  3349.  RENAME if you ever intend to use the recovery feature: 
  3350.  
  3351.      When the file is first received by C-Kermit, its name will be changed if 
  3352.       another file already has the same name.  When you RESEND the same file 
  3353.       after a failure, C-Kermit will probably try to append the re-sent portion 
  3354.       to the wrong file. 
  3355.  
  3356.      Assuming that you get RESEND to work with FILE COLLISION RENAME, 
  3357.       C-Kermit, when receiving the remainder of the file during a RESEND 
  3358.       operation, will report back the wrong name.  Nothing can be done about 
  3359.       this because the name is reported back before the receiving Kermit 
  3360.       program finds out that it is a recovery operation. 
  3361.  
  3362.  Using RESEND, you can write a script program to really, REALLY send a file. 
  3363.  Here is a sample, in which we dial up to a UNIX computer and send the MS-DOS 
  3364.  Kermit distribution ZIP file.  This script program runs under C-Kermit 5A(190) 
  3365.  or later on OS/2 (and with a change in the dialout device name, under UNIX 
  3366.  too), and under MS-DOS Kermit 3.14 or later.  If the transfer fails, we 
  3367.  reestablish the connection and restart the transfer from the point of failure, 
  3368.  as many times as it takes to get the file across. 
  3369.  
  3370.   ---(cut here)---
  3371.   ask \%u { username: }
  3372.   askq \%p { \%u's password: }
  3373.   ;
  3374.   ; Settings for entire session.
  3375.   ;
  3376.   define \%s 20             ; Seconds to pause between each try
  3377.   define \%n 7654321        ; Phone number
  3378.   set modem hayes           ; Modem type
  3379.   set port com1             ; Communication port
  3380.   set speed 19200           ; Speed
  3381.  
  3382.   set file type binary      ; File transfer mode must be binary
  3383.   set input timeout quit    ; This is just to keep the script program short
  3384.   set count 50              ; Try up to 50 times to send the file
  3385.   goto nomsg                ; Skip message the first time
  3386.  
  3387.   :LOOP                     ; Come here to redial
  3388.   hangup                    ; Give the phone a rest
  3389.   echo CONNECTION BROKEN.
  3390.   echo Pausing for \%s seconds...
  3391.   sleep \%s
  3392.   Echo redialing...
  3393.  
  3394.   :NOMSG
  3395.   dial \%n                  ; Dial the phone number
  3396.   if fail goto AGAIN        ; Keep trying...
  3397.   output \13                ; System answered, send a carriage return
  3398.   input 15 login:           ; Get login prompt
  3399.   output \%u\13             ; Send user ID
  3400.   input 8 Password:         ; Get password prompt
  3401.   output \%p\13             ; Send password
  3402.   input 60 {$ }             ; Get system prompt
  3403.   cd /kermit                ; CD to desired source directory
  3404.   output cd mskermit\13     ; and destination directory
  3405.   input 8 {$ }              ; Get system prompt
  3406.   out kermit -r\13          ; kermit -r(eceive) on remote system
  3407.   input 10 KERMIT READY     ; Wait for READY message
  3408.   pause 1                   ; Plus a second for safety
  3409.   resend msvibm.zip         ; RESEND the file
  3410.   if success goto done      ; Success means file is completely transferred
  3411.  
  3412.   :AGAIN
  3413.   if count goto LOOP        ; Otherwise, try again.
  3414.   Stop 1 Too many tries.    ; Too many tries, give up.
  3415.  
  3416.   :DONE
  3417.   echo File transferred OK  ; Success, give message
  3418.   output exit\13            ; Log out from remote computer
  3419.   pause 5                   ; Give it time...
  3420.   hangup                    ; Hang up
  3421.   stop 0 Script succeeded   ; Finished, the end.
  3422.   ---(cut here)---
  3423.  
  3424.  
  3425. ΓòÉΓòÉΓòÉ 4.4.1.2. Manual Recovery: The PSEND Command ΓòÉΓòÉΓòÉ
  3426.  
  3427. The PSEND ("partial send") command is like the SEND command, but it begins 
  3428. sending from a specified position in the file: 
  3429.  
  3430. PSEND filename position [ as-name ] 
  3431.  
  3432. filename must refer to a single file, not a file group. position is the byte 
  3433. position in (offset into) the file; 0 means the beginning, 1000 means the 
  3434. 1001st byte.  As with the SEND command, the file is sent under its own name 
  3435. unless you specify an "as-name".  Unlike RESEND, PSEND can be used for both 
  3436. text and binary transfers, and no special capabilities are required of the 
  3437. Kermit program on the receiving end.  The PSEND command can be viewed as part 
  3438. of a "do-it-yourself" recovery feature to be used when the other Kermit program 
  3439. does not support recovery.  For example, suppose you were sending a file called 
  3440. OOFA when the connection hung up, and that the receiving Kermit program had 
  3441. been instructed to keep incompletely received files (SET FILE INCOMPLETE KEEP). 
  3442. If the transfer was in binary mode, you could note the length of the partial 
  3443. file on the receiving end; let's say it was 123456. Then tell the file receiver 
  3444. to: 
  3445.  
  3446. SET FILE COLLISION APPEND 
  3447. RECEIVE 
  3448.  
  3449. and tell the sender to: 
  3450.  
  3451. SET FILE TYPE BINARY 
  3452. PSEND OOFA 123456 
  3453.  
  3454. If the receiver does not support SET FILE COLLISION APPEND, you could just use 
  3455. PSEND to create a new file: 
  3456.  
  3457. SET FILE TYPE BINARY 
  3458. PSEND OOFA 123456 OOFA.NEW 
  3459.  
  3460. and then, after the transfer is complete, join the two pieces together on the 
  3461. receiving end, using a system command or utility. 
  3462.  
  3463.  
  3464. ΓòÉΓòÉΓòÉ 4.4.2. Control-Character Unprefixing ΓòÉΓòÉΓòÉ
  3465.  
  3466. This feature allows you to improve C-Kermit's file transfer performance on 
  3467. connections that you know are transparent to certain control characters.  It 
  3468. lets you tell C-Kermit exactly which control characters need to be prefixed and 
  3469. encoded, and which ones can be transmitted "bare" when sending files. 
  3470.  
  3471.  SET { SEND, RECEIVE } CONTROL-PREFIX code 
  3472.      Sets the control-character prefix which C-Kermit uses to the ASCII 
  3473.      character represented by the numeric code.  The code must be in the range 
  3474.      33-63 or 96-126.  Normally it is 35 (#, number sign).  SEND is the one 
  3475.      that C-Kermit should use in packets it is sending.  RECEIVE should 
  3476.      normally never be used, except to override some kind of protocol 
  3477.      negotiation foulup with a buggy commercial or shareware Kermit 
  3478.      implementation. 
  3479.      Synonym: SET { SEND, RECEIVE } QUOTE. 
  3480.  
  3481.  SET CONTROL-CHARACTER UNPREFIXED { code..., ALL } 
  3482.      Says you think it's safe to include the control character represented by 
  3483.      code without prefixing in packets which C-Kermit sends. The code is the 
  3484.      numeric ASCII code for a control character, 1-31, 127-159, or 255.  For 
  3485.      example, linefeed (code 10) is normally sent as two printable characters, 
  3486.      #J.  SET CONTROL UNPREFIXED 10 lets linefeed be sent literally.  Include 
  3487.      the word ALL to unprefix all control characters (except 0).  Or you can 
  3488.      specify a list of one or more numeric values, separated by spaces, e.g.: 
  3489.  
  3490.      SET CONTROL UNPREFIXED 2 4 5 18 20 
  3491.  
  3492.      If you can safely declare a lot of control characters to be UNPREFIXED, 
  3493.      you can send binary files (esp. precompressed ones) up to about 20-25% 
  3494.      faster. If you include a control character in this category that causes 
  3495.      trouble, however, the transfer will fail, so experimentation is necessary. 
  3496.      This command will not let you "unprefix" the NUL character (0), nor the 
  3497.      following characters if C-Kermit's current FLOW-CONTROL setting is 
  3498.      XON/XOFF: 17, 19, 145, 147.  Nor can you unprefix character 255 on a 
  3499.      TELNET connection (if C-Kermit knows it's a TELNET connection). 
  3500.  
  3501.  SET CONTROL-CHARACTER PREFIXED { code..., ALL } 
  3502.      Says that the given control character(s) must be prefixed in Kermit 
  3503.      packets.  By default, all control characters, 0-31, 127-159, and 255, are 
  3504.      prefixed. 
  3505.  
  3506.  SHOW CONTROL-PREFIXING 
  3507.      Displays the current control prefix and a table of all control-character 
  3508.      values, showing 1 for each one that will be prefixed and 0 for each one 
  3509.      that will not be prefixed. 
  3510.  
  3511.  SET REPEAT PREFIX code 
  3512.      Sets the repeat-count prefix to the ASCII character represented by the 
  3513.      numeric code.  Normally it is 126 (tilde).  The code 
  3514.  
  3515.  SET REPEAT COUNTS { OFF, ON } 
  3516.      Turns the repeat-count compression mechanism off and on.  REPEAT COUNTS 
  3517.      are ON by default.  Turn them OFF in case they cause trouble when used 
  3518.      against a faulty Kermit implementation in a shareware or commercial 
  3519.      communications program.  Or when transferring precompressed files (like 
  3520.      .ZIP or .Z files), since it is very rare to find runs of repeated 
  3521.      characters, and disabling the repeat-count mechanism frees another 
  3522.      character from prefixing, thus resulting in slightly more efficient 
  3523.      transfers. 
  3524.  
  3525.  The purpose of the SET CONTROL UNPREFIX command is to unilaterally configure 
  3526.  C-Kermit to skip prefixing and printable encoding of selected control 
  3527.  characters to achieve higher performance when sending files.  This feature 
  3528.  takes advantage of the fact that most Kermit programs will accept control 
  3529.  characters within packet data-fields literally, provided they get through at 
  3530.  all, and provided they do not have a special meaning to the receiving Kermit 
  3531.  program (such as, in many cases, the packet-start and packet-end characters). 
  3532.  
  3533.  There is no protocol negotiation between the two Kermit programs to determine 
  3534.  a "safe set" of control characters, and in fact any such negotiation would be 
  3535.  largely meaningless, because in most cases the two Kermit programs don't have 
  3536.  all the needed information.  For example, there might be a terminal server or 
  3537.  PAD between them that is sensitive to a particular control character, even 
  3538.  though the two Kermit programs are not. 
  3539.  
  3540.  If you include in your SET CONTROL UNPREFIXED list one or more control 
  3541.  characters that are unsafe, any of several things might happen: 
  3542.  
  3543.    1. Transfer of any file containing these characters will fail. 
  3544.  
  3545.    2. The receiving Kermit program might be interrupted or halted. 
  3546.  
  3547.    3. Your connection might become hung, stuck, or broken.  For example because 
  3548.       a control character causes a PAD, terminal server, modem, or similar 
  3549.       device to go from online mode to command mode. 
  3550.  
  3551.  The set of safe control characters depends on the two Kermit programs, their 
  3552.  settings, the host operating systems and their settings, the communication and 
  3553.  flow control methods, and all the devices, drivers, and protocols that lie 
  3554.  between the two Kermit programs.  Therefore, this feature is recommended only 
  3555.  for use on well-known and often-used connections, so the time invested in 
  3556.  finding an optimal unprefixed control-character set will pay off over many 
  3557.  file transfers. 
  3558.  
  3559.  You must be willing to experiment in order to achieve the optimal safe set. 
  3560.  Here is one way.  Create a short file containing all 256 possible bytes in 
  3561.  sequence and also in pairs, as well as several text strings surrounded by 
  3562.  CRLFs; for example, compile and run the following program, redirecting its 
  3563.  output to a file: 
  3564.  
  3565.   ---(cut here)---
  3566.   #include <stdio.h>
  3567.   main() {
  3568.       int i;
  3569.       puts("\r\n256-byte test pattern:\r\n");
  3570.       for (i = 0; i < 256; i++) putchar(i); /* singles */
  3571.       puts("\r\n256-double-byte test pattern:\r\n");
  3572.       for (i = 0; i < 256; i++) { putchar(i); putchar(i); } /* in pairs */
  3573.       puts("\r\nEnd of test patterns\r\n");
  3574.   }
  3575.   ---(cut here)---
  3576.  To send the file to MS-DOS Kermit from either C-Kermit or MS-DOS Kermit, try 
  3577.  the following settings: 
  3578.  
  3579.   SET CONTROL UNPREFIXED ALL ; Turn prefixing off for all but 0
  3580.   SET CONTROL PREFIXED 1     ; Turn it back on for packet-start character
  3581.   SET CONTROL PREFIXED 129   ; and 8-bit version thereof
  3582.  
  3583.  (HINT: Abbreviate SET CON U and SET CON P) 
  3584.  
  3585.  Or to send the file from MS-DOS Kermit to C-Kermit, tell MS-DOS Kermit to: 
  3586.  
  3587.   SET CON U ALL   ; Turn prefixing off for all
  3588.   SET CON P 0     ; Turn it back on for NUL
  3589.   SET CON P 3     ; and for Ctrl-C
  3590.   SET CON P 131   ; as well as Ctrl-C + parity bit
  3591.  
  3592.  Note 1:  3 and 131 normally need not be prefixed when sending to C-Kermit 
  3593.  5A(190) or later, nor to 5A(189) if you have SET TRANSFER CANCELLATION OFF. 
  3594.  
  3595.  Note 2:  1 and 129 need not be prefixed when sending files *to* C-Kermit, but 
  3596.  must be prefixed when sending files to MS-DOS Kermit. 
  3597.  
  3598.  Note 3:  13 (carriage return, the customary packet terminator) normally need 
  3599.  not be prefixed when sending files to either C-Kermit or MS-DOS Kermit, except 
  3600.  on a TELNET connection (because TELNET servers are likely to change CRLF into 
  3601.  CR). 
  3602.  
  3603.  Try to send the test file in binary mode.  If it works, fine.  If not, try 
  3604.  prefixing some of the other likely control characters (see below).  Once you 
  3605.  find the minimum set of prefixed control characters for the test file, it is 
  3606.  likely they will also work for any other file on the same connection.  Try 
  3607.  sending a large precompressed (e.g. ZIP or .Z or GZIP) file.  And, of course, 
  3608.  for maximum performance, also use a window size greater than 1 (say, 3) and a 
  3609.  packet length of 1000 or more. 
  3610.  
  3611.  Under ideal conditions (totally transparent and clean serial connection, no 
  3612.  Xon/Xoff, and C-Kermit has been told to SET TRANSFER CANCELLATION OFF, see 
  3613.  below), the minimum set of control characters that need to be prefixed is: 
  3614.  
  3615.   SENDER          RECEIVER         PREFIXED CONTROLS
  3616.    MS-DOS Kermit   MS-DOS Kermit    1 129
  3617.    MS-DOS Kermit   C-Kermit         0
  3618.    C-Kermit        MS-DOS Kermit    0 1 129
  3619.    C-Kermit        C-Kermit         0
  3620.  
  3621.  For example, to set up C-Kermit to unprefix the minimum set of prefixed 
  3622.  control characters for sending files to MS-DOS Kermit, tell C-Kermit to: 
  3623.  
  3624.   SET FLOW NONE            ; Or SET FLOW RTS/CTS
  3625.   SET CONTROL UNPREFIX ALL
  3626.   SET CONTROL PREFIX 1 129 ; C-Kermit always prefixes character 0
  3627.  
  3628.  When the mininum set doesn't work, consult this list of control characters 
  3629.  that are apt to cause trouble and are therefore likely candidates for 
  3630.  prefixing.  In particular, note that unprefixing of the packet-start character 
  3631.  (normally 1 and 129), can cause problems when sending to C-Kermit if the 
  3632.  communication link (including device input buffers) is noisy or apt to lose 
  3633.  characters. 
  3634.  
  3635.   set con p 0   ; Ctrl-@ = NUL, internal string terminator in C-Kermit.
  3636.                 ;          Also, often discarded as padding.
  3637.   set con p 1   ; Ctrl-A = Packet-start character.
  3638.   set con p 3   ; Ctrl-C = Packet breakout for remote-mode C-Kermit,
  3639.                 ;          packet breakout for server-mode MS-DOS Kermit,
  3640.                 ;          likely to cause interruptions on other systems.
  3641.   set con p 13  ; Ctrl-M = Carriage return, packet-end character.
  3642.                 ;          Always prefix on TELNET connections.
  3643.   set con p 14  ; Ctrl-N = Shift Out
  3644.   set con p 15  ; Ctrl-O = Shift In
  3645.   set con p 16  ; Ctrl-P = Commonly-used X.25/X.3 PAD escape character
  3646.   set con p 17  ; Ctrl-Q = XON, must be prefixed with Xon/Xoff flow control
  3647.   set con p 19  ; Ctrl-S = XOFF, must be prefixed with Xon/Xoff flow control
  3648.   set con p 27  ; Ctrl-[ = ESC, prefix if going through an ANSI device
  3649.   set con p 28  ; Ctrl-\ = CONNECT-mode escape for C-Kermit
  3650.   set con p 29  ; Ctrl-] = CONNECT-mode escape for TELNET
  3651.   set con p 30  ; Ctrl-^ = Cisco terminal server escape.
  3652.   set con p 127 ; Ctrl-? = DEL, often discarded as padding.
  3653.                 ;          Also becomes TELNET IAC if parity bit is added.
  3654.   set con p 128 ; = NUL    + 128 (i.e. NUL + parity bit)
  3655.   set con p 129 ; = Ctrl-A + 128
  3656.   set con p 131 ; = Ctrl-C + 128
  3657.   set con p 141 ; = CR     + 128
  3658.   set con p 145 ; = XON    + 128
  3659.   set con p 147 ; = XOFF   + 128
  3660.   set con p 255 ; 255 = TELNET IAC, must be prefixed on TELNET connections
  3661.                   INCLUDING TELNET connections through terminal servers!
  3662.  
  3663.  Note, by the way, that nothing special need be done for SLIP connections, 
  3664.  since the four special SLIP characters are in the G1 printable range: 
  3665.  
  3666.       192 SLIP END character 
  3667.       219 SLIP ESC character 
  3668.       220 SLIP END quote 
  3669.       221 SLIP ESC quote 
  3670.  
  3671.  Here is a suggested (conservative) starting point for experimenting with 
  3672.  control-character unprefixing.  Tell the file sender to: 
  3673.  
  3674.  SET CONTROL UNPREFIX ALL 
  3675.  SET CONTROL PREFIX 0 1 3 13 17 19 127 129 131 141 145 147 255 
  3676.  
  3677.  Perhaps some of these can be removed, depending on the connection, and maybe 
  3678.  others need to be added.  If you are going through a terminal server or an 
  3679.  intermediate Kermit or TELNET program, also add the appropriate escape 
  3680.  character values (bare, and plus 128). 
  3681.  
  3682.  PREFIXING NOTES: 
  3683.  
  3684.      If C-Kermit or MS-DOS Kermit has initiated a TELNET connection, prefixing 
  3685.       of 255 (TELNET IAC) is forced automatically. 
  3686.  
  3687.       IMPORTANT WARNING  When you have a TELNET connection through a terminal 
  3688.       server, neither one of the Kermit programs knows that it's a TELNET 
  3689.       connection, and in this case unprefixing of 255 is NOT automatically 
  3690.       disabled.  This can cause file transfer failures. When in doubt, do not 
  3691.       unprefix 255. 
  3692.  
  3693.      Kermit will not let you unprefix XON (17), XOFF (19), XON+128 (145), or 
  3694.       XOFF+128 (147) if its FLOW-CONTROL setting is XON/XOFF.  If you want to 
  3695.       unprefix these, make sure *both* Kermits have first been told to SET FLOW 
  3696.       NONE (or RTS/CTS), and that XON/XOFF flow control is not in effect 
  3697.       anywhere along the communication path between the two Kermits. 
  3698.  
  3699.      When sending files to C-Kermit 189 or earlier, and C-Kermit is in remote 
  3700.       mode, you should normally tell the file sender to SET CONTROL PREFIX 3 
  3701.       and SET CONTROL PREFIX 131, because C-Kermit 189 and earlier (by default) 
  3702.       takes two Ctrl-C's (3 or 131) in a row as cancellation of packet-mode. 
  3703.       However, you can UNPREFIX these characters if you know your files do not 
  3704.       contain two Ctrl-C's in a row, or if you tell C-Kermit to SET TRANSFER 
  3705.       CANCELLATION OFF, or SET TRANSFER CANCELLATION ON code number when you 
  3706.       know that number copies of code do not occur in a row in the data. When 
  3707.       sending files to edit 190 of C-Kermit and later, you can leave 3 and 131 
  3708.       unprefixed unless you have disabled repeat-count compression. 
  3709.  
  3710.  
  3711. ΓòÉΓòÉΓòÉ 4.4.3. The New MOVE and MMOVE Commands ΓòÉΓòÉΓòÉ
  3712.  
  3713. By popular demand, C-Kermit now has a way of deleting files that it sends after 
  3714. it has sent them successfully, in effect moving them from one computer to 
  3715. another.  The commands are MOVE and MMOVE.  These commands are identical to 
  3716. SEND and MSEND in every way, except that each file that is sent successfully -- 
  3717. that is, that is completely received by the other computer, or that was already 
  3718. on the other computer to begin with -- is deleted from the computer it was sent 
  3719. from. 
  3720.  
  3721. For example, suppose your current OS/2 directory contains three files: 
  3722. OOFA.EXE, OOFA.ZIP, and OOFA.INF.  If you tell C-Kermit to "send *.*", the 
  3723. three files will be sent to the other computer, and they will also remain on 
  3724. your OS/2 disk.  But if you tell C-Kermit to "move *.*", they will be removed 
  3725. from your OS/2 disk after they are sent successfully to the other computer. 
  3726.  
  3727. If any of the files is not sent successfully, then it is not removed from your 
  3728. OS/2 disk.  For example, suppose OOFA.ZIP is too big to fit on the receiving 
  3729. computer's disk, but OOFA.EXE and OOFA.INF can fit.  In that case, assuming 
  3730. OOFA.EXE and OOFA.INF are transferred successfully, they will be deleted from 
  3731. your OS/2 disk, but OOFA.ZIP will not be. 
  3732.  
  3733.  
  3734. ΓòÉΓòÉΓòÉ 4.4.4. New RECEIVE Command Features ΓòÉΓòÉΓòÉ
  3735.  
  3736. In edit 190 and later, the RECEIVE command can accept a device or directory 
  3737. name as an argument, and all incoming files will go into the specified device 
  3738. or directory under the names they were sent with, for example: 
  3739.  
  3740. RECEIVE D: 
  3741.  
  3742. or: 
  3743.  
  3744. RECEIVE D:\BUDGET\1995 
  3745.  
  3746. If the name is not a device or directory name, it is treated as before: as a 
  3747. name under which to store the (first) incoming file.  This change also affects 
  3748. the '-a' ("as-name") command-line option. 
  3749.  
  3750. When SET FILE NAMES LITERAL is in effect, and a file arrives that is to be 
  3751. stored on a FAT (i.e. DOS) volume but its name is illegal for FAT, the file is 
  3752. no longer refused.  Instead, the file is created with a legal FAT name and the 
  3753. original name is saved in the file's Extended Attributes, so it is visible on 
  3754. the desktop and usable on HPFS volumes.  Edit 190. 
  3755.  
  3756.  
  3757. ΓòÉΓòÉΓòÉ 4.4.5. Automatic Directory Creation ΓòÉΓòÉΓòÉ
  3758.  
  3759. File names are treated according to the SET FILE NAMES command (see p.114 of 
  3760. Using C-Kermit), CONVERTED (the default) or LITERAL.  SET FILE NAMES LITERAL 
  3761. means: 
  3762.  
  3763.      When sending files, put the filespec into the outgoing file header packet 
  3764.       exactly as the user typed it.  What happens on the receiving end is 
  3765.       entirely up to the receiver. 
  3766.  
  3767.      When receiving files, use the file specification from the incoming file 
  3768.       header exactly as given, so if it happens to include a device or 
  3769.       directory specification, C-Kermit attempts to use it, and if the device 
  3770.       and/or directory does/do not exist or are not write-accessible, the 
  3771.       transfer fails. 
  3772.  
  3773.  SET FILE NAMES CONVERTED, which is the default, transforms outgoing filenames 
  3774.  by (a) removing device, directory, and other "extraneous" information, (b) 
  3775.  uppercasing all lowercase letters, (c) making sure there is no more than one 
  3776.  period, and (d) translating all "uncommon" characters to X's. 
  3777.  
  3778.  A new command allows us to strike a compromise between these two methods: 
  3779.  
  3780.  SET { SEND, RECEIVE } PATHNAMES { ON, OFF } 
  3781.  
  3782.  SET SEND PATHNAMES ON means to leave pathnames ON outbound file names, which 
  3783.  is the default for compatibility with earlier behavior.  Note, however, that 
  3784.  PATHNAMES are always stripped from outbound filenames when FILE NAMES are 
  3785.  CONVERTED, and in OS/2, disk letters are always stripped. 
  3786.  
  3787.  SET SEND PATHNAMES OFF means to strip OFF path information, leaving only the 
  3788.  file's name.  SET SEND PATHNAME applies only to the filename given directly to 
  3789.  a SEND or MSEND command, and not to the "as-name", which is always sent 
  3790.  literally and without modification, regardless of SEND PATHNAME or FILE NAMES 
  3791.  settings. 
  3792.  
  3793.  SET RECEIVE PATHNAMES applies to the filenames in incoming file header 
  3794.  packets; ON means to leave the name alone and attempt to use it as-is, OFF 
  3795.  means to attempt to strip the path information ON THE ASSUMPTION that any path 
  3796.  information found there would be in the notation of the local file system, and 
  3797.  therefore recognizable.  If not, the results are unpredictable; for example, 
  3798.  if a file called MYVAX::DUA0:[OLAF.PICS]MONA_LISA.GIF;17 arrives on an OS/2 
  3799.  system, OS/2 C-Kermit can not be expected to distinguish the path information 
  3800.  from the name (it is a general principle of communication protocols that a 
  3801.  particular computer must not be expected to understand the conventions and 
  3802.  formats of some other kind of computer). 
  3803.  
  3804.  When a file arrives whose name includes a directory specification (with either 
  3805.  '/' or '\' as the directory separator), OS/2 C-Kermit will attempt to put it 
  3806.  in the specified directory. 
  3807.  
  3808.  In the 32-bit version only: If the incoming file name contains OS/2 directory 
  3809.  information (such as C:\TEXT\LETTERS\ANGRY\OOFA.TXT) -- either absolute or 
  3810.  relative, then, if the named directory, or any of its ancestors, does not 
  3811.  exist, Kermit attempts to create it (or them) before opening the output file. 
  3812.  
  3813.  For example, suppose your current directory is C:\USR\OLGA\BUDGET, and a file 
  3814.  arrives under the name AAA\BBB\CCC\DDD\BANKRUPT.TXT, and that the 
  3815.  C:\USR\OLGA\BUDGET\AAA directory already exists, but it does not have a BBB 
  3816.  subdirectory.  Then Kermit will create the BBB subdirectory, and then the CCC 
  3817.  subdirectory under BBB, and then the DDD subdirectory under CCC, and then it 
  3818.  will store the BANKRUPT.TXT file in the C:\USR\OLGA\BUDGET\AAA\BBB\CCC\DDD 
  3819.  directory. 
  3820.  
  3821.  If a non-existent or non-writable drive is specified in the directory path, 
  3822.  the directory creation will fail. 
  3823.  
  3824.  Use the SHOW FILE command to display the SEND/RECEIVE PATHNAME settings. 
  3825.  
  3826.  
  3827. ΓòÉΓòÉΓòÉ 4.4.6. IBM Mainframe File Transfer ΓòÉΓòÉΓòÉ
  3828.  
  3829. Edit 190 added new features that allow transfer of files with IBM mainframes 
  3830. through 3270 protocol converters that cannot be put into transparent mode, such 
  3831. as the 3708 and pre-B2 AEA controllers.  IBM Mainframe Kermit 4.2.4 or later is 
  3832. required.  Very briefly: 
  3833.  
  3834. Kermit-370:                C-Kermit or MS-DOS Kermit:
  3835.   SET CONTROLLER FULL
  3836.   SET RECEIVE START 62       SET RECEIVE START 62
  3837.   SET SEND START 62          SET SEND START 62
  3838.   SET BLOCK B                SET BLOCK B
  3839.   SET HANDSHAKE 0            SET HANDSHAKE NONE
  3840.  
  3841. This sets the packet-start character in both directions to be the greater-than 
  3842. sign (>) (ASCII 62) and enables a new block-check type (a 12-bit checksum 
  3843. containing no blanks) to defeat the trailing-blank-stripping feature found in 
  3844. many protocol converters.  Short packets are used automatically.  See your IBM 
  3845. Mainframe Kermit documentation for additional details. 
  3846.  
  3847.  
  3848. ΓòÉΓòÉΓòÉ 4.4.7. Pausing Between Packets ΓòÉΓòÉΓòÉ
  3849.  
  3850. The new command: 
  3851.  
  3852. SET { SEND, RECEIVE } PAUSE number 
  3853.  
  3854. tells C-Kermit to pause the given number of milliseconds (thousandths of 
  3855. seconds) before sending each packet.  This might be necessary when 
  3856. communicating with certain devices or over certain kinds of connections. Don't 
  3857. use this unless file transfers fail without it, since it slows transfers down. 
  3858. SHOW PROTOCOL displays the current setting.  SET SEND PAUSE and SET RECEIVE 
  3859. PAUSE do exactly the same thing.  Edit 190. 
  3860.  
  3861.  
  3862. ΓòÉΓòÉΓòÉ 4.4.8. Fullscreen File Transfer Display Improvements ΓòÉΓòÉΓòÉ
  3863.  
  3864. OS/2 C-Kermit now shows a file-transfer "thermometer" (percent bar-graph) to 
  3865. graphically represent the progress of the file transfer.  It can be explicitly 
  3866. selected or deselected via the new trailing argument to this command: 
  3867.  
  3868. SET FILE DISPLAY FULLSCREEN { THERMOMETER, NO-THERMOMETER } 
  3869.  
  3870. A running display of the transfer speed in characters per second (CPS) is also 
  3871. shown; it is computed as an average of actual file characters transferred so 
  3872. far versus elapsed time. 
  3873.  
  3874.  
  3875. ΓòÉΓòÉΓòÉ 4.4.9. Transferring OS/2 Files with Attributes ΓòÉΓòÉΓòÉ
  3876.  
  3877. Edit 190 also adds support for SET FILE TYPE LABELED, as in the VMS version of 
  3878. C-Kermit.  This allows OS/2 files to be transferred with all their extended 
  3879. attributes intact-desktop material, icons, long file names on FAT partitions, 
  3880. etc.  Consult the VMS appendix of Using C-Kermit for information on labeled 
  3881. file transfer.  Briefly, the idea is that an OS/2 file can be transferred from 
  3882. one OS/2 system to another with all its extended attributes intact.  It can 
  3883. also be transferred to an intermediate (non-OS/2) system for archival, and 
  3884. later transferred to another OS/2 system and restored to its original form.  An 
  3885. OS/2-specific SET FILE LABEL command is also provided for controlling how 
  3886. regular OS/2 file attributes are handled in labeled file transfers: 
  3887.  
  3888. SET FILE LABEL {ARCHIVE, READ-ONLY, HIDDEN, SYSTEM, EXTENDED} {ON, OFF} 
  3889.  
  3890. By default, all but ARCHIVE are ON.  All of a file's attributes are always 
  3891. transmitted; this command tells the file receiver whether to pay attention to 
  3892. them (ON) or not (OFF).  Use SHOW LABELED-FILE-INFO to display the values of 
  3893. these settings. 
  3894.  
  3895.  
  3896. ΓòÉΓòÉΓòÉ 4.4.10. Transferring OS/2 Directory Trees ΓòÉΓòÉΓòÉ
  3897.  
  3898. Using the new REXX interface C-Kermit provides a XSEND command similar to that 
  3899. provided for years with MS-DOS Kermit.  The syntax is: 
  3900.  
  3901. XSEND path filespec 
  3902.  
  3903. For example: 
  3904.  
  3905. XSEND C:\ * 
  3906.  
  3907. (note the space between the path and the filespec). 
  3908.  
  3909. XSEND traverses the directory tree indicated by the path and sends all files 
  3910. matching the filespec to another computer.  To send an entire drive (desktop) 
  3911. from one OS/2 machine to another: 
  3912.  
  3913.      Place the remote PC's C-Kermit into server mode. 
  3914.      Issue the REMOTE SET FILE TYPE LABELED command to the local PC's Kermit. 
  3915.      Change the current working directory on the remote machine to where you 
  3916.       want the files to be sent by giving a REMOTE CD command. 
  3917.      Issue an XSEND command on the local PC. 
  3918.  
  3919.  The entire directory tree will be replicated on the remote system including 
  3920.  the Extended Attributes. 
  3921.  
  3922.  
  3923. ΓòÉΓòÉΓòÉ 4.4.11. File Transfer Hints and Tips ΓòÉΓòÉΓòÉ
  3924.  
  3925. Some communication software claims to implement sliding windows, but does so 
  3926. incorrectly.  If sliding window transfers fail, set C-Kermit's window size to 
  3927. the smallest one that works, for example: 
  3928.  
  3929. SET WINDOW 1
  3930.  
  3931. SET FILE COLLISION UPDATE has the following peculiarity: On FAT (i.e. DOS) file 
  3932. systems, a file's date/time is recorded with a granularity of 2 seconds, 
  3933. whereas on most other kinds of file systems (UNIX, VMS, OS/2 HPFS, etc), it is 
  3934. recorded to at least the exact second.  Thus when OS/2 C-Kermit records the 
  3935. timestamp of an incoming file, the "one's place" of its time is truncated.  If 
  3936. it was an odd number, therefore, it will be one second "older" than the 
  3937. date/time of the original file.  Downloading the same file again with SET FILE 
  3938. COLLISION UPDATE would result in a second, unnecessary transfer of the file, 
  3939. since the remote file would appear to be newer than the local file. Therefore, 
  3940. OS/2 C-Kermit, when making this comparison, will treat two times as equal if 
  3941. (a) the local file's time is an even number, (b) the remote time is equal to 
  3942. (of course) or exactly one second greater than the local time, and (c) the 
  3943. local file system is FAT. 
  3944.  
  3945.  
  3946. ΓòÉΓòÉΓòÉ 4.5. New Client/Server Features ΓòÉΓòÉΓòÉ
  3947.  
  3948. Some new REMOTE commands and server functions are now available: 
  3949.  
  3950.       New REMOTE Commands 
  3951.       "WHATAMI" - Making Kermit GET more like FTP GET 
  3952.  
  3953.  
  3954. ΓòÉΓòÉΓòÉ 4.5.1. New REMOTE Commands ΓòÉΓòÉΓòÉ
  3955.  
  3956. The following commands are new to edit 191: 
  3957.  
  3958.  REMOTE COPY filespec1 filespec2 
  3959.      Asks the remote server to make a copy of filespec1, calling it filespec2 
  3960.      The OS/2 C-Kermit server can execute this command too. 
  3961.  
  3962.  { ENABLE, DISABLE } COPY 
  3963.      Enable or disable the server's execution of REMOTE COPY commands. 
  3964.  
  3965.  REMOTE RENAME filespec1 filespec2 
  3966.      Asks the remote server to make change the name of filespec1 to filespec2 
  3967.      The OS/2 C-Kermit server can execute this command too. 
  3968.  
  3969.  { ENABLE, DISABLE } RENAME 
  3970.      Enable or disable the server's execution of REMOTE RENAME commands. 
  3971.  
  3972.  The following features were added in edit 190: 
  3973.  
  3974.  REMOTE PWD 
  3975.      Allows the client to ask for the server's current directory in 
  3976.      system-independent way.  Formerly, this could only be done via system- 
  3977.      dependent REMOTE HOST commands.  The response is displayed on the screen. 
  3978.  
  3979.  REMOTE SET FILE TYPE { TEXT, BINARY, LABELED } 
  3980.      The LABELED option has been added to this command in the VMS and OS/2 
  3981.      versions only.  Also, the file type specified in this command also takes 
  3982.      effect locally.  Previously, it was only sent to the server.  Edit 190. 
  3983.  
  3984.  REMOTE QUERY { KERMIT, SYSTEM, USER } name 
  3985.      Asks the server to send the value of the variable of the given type that 
  3986.      has the given name.  If the query succeeds, the value is displayed on your 
  3987.      screen and it is also stored in a local read-only Kermit variable, 
  3988.      \v(query) If the query fails, an error message is printed and the 
  3989.      \v(query) variable is set to the empty string. 
  3990.  
  3991.      In C-Kermit and MS-DOS Kermit, "KERMIT" variables are the \v(name) kind, 
  3992.      such as \v(time), \v(version), \v(date), etc.  "SYSTEM" variables are DOS 
  3993.      or UNIX environment variables, such as PATH, USER, HOME, or VMS logical 
  3994.      names, etc.  USER variables are everything else - \%a-z, \%1-9, and macro 
  3995.      names used as long variable names. 
  3996.  
  3997.      The name of a KERMIT or SYSTEM variable must be given in an 
  3998.      implementation-independent format without special syntax, e.g. TIME, DATE, 
  3999.      VERSION, PATH, USER, etc, rather than (say) \v(time), \$(PATH).  However, 
  4000.      in most cases, case matters in system variables.  The <name> of a USER 
  4001.      variable is given in the syntax of the server, e.g. \%a.  Examples: 
  4002.  
  4003.           C-Kermit> remote query kermit time
  4004.           13:25:18
  4005.           C-Kermit> echo The server's time is: \v(query)
  4006.           The server's time is: 13:25:18
  4007.           C-Kermit>rem q k dir ; Note, abbreviations allowed.
  4008.           /usr/olga/letters
  4009.           C-Kermit>echo The server's current directory is: \v(query)
  4010.           The server's current directory is: /usr/olga/letters
  4011.           C-Kermit>rem q system USER
  4012.           olga
  4013.           C-Kermit>echo user = \v(query)
  4014.           user = olga
  4015.  
  4016.  REMOTE ASSIGN name [ value ] 
  4017.      Asks the server to assign the given value to the remote user variable 
  4018.      denoted by name.  The value is fully evaluated LOCALLY before being sent 
  4019.      to the Kermit server.  The maximum length for the value is governed by the 
  4020.      maximum negotiated packet length, i.e. the server's RECEIVE PACKET-LENGTH. 
  4021.      Synonym: REMOTE ASG. 
  4022.      Examples: 
  4023.  
  4024.           C-Kermit>remote assign \%a \v(time) ; Client's time to server's \%a
  4025.           C-Kermit>remote query user \%a
  4026.           13:41:18                            ; This is the client's time
  4027.           C-Kermit>rem asg myname Olga        ; My name to server
  4028.      To force a string corresponding to a local variable name to be sent 
  4029.      literally, use two backslashes: 
  4030.  
  4031.           C-Kermit>remote assign \%a \\v(time) ; "\v(time)" to server's \%a.
  4032.           C-Kermit>remote query user \%a
  4033.           13:41:18                             ; This is the server's time.
  4034.           C-Kermit>
  4035.  
  4036.  You can disable and enable the server's handling of REMOTE QUERY and ASSIGN 
  4037.  with the commands: 
  4038.  
  4039.  DISABLE QUERY       The server should not respond to REMOTE QUERY commands 
  4040.  DISABLE ASSIGN      The server should not respond to REMOTE ASSIGN commands 
  4041.  ENABLE QUERY        The server should respond to REMOTE QUERY commands 
  4042.  ENABLE ASSIGN       The server should respond to REMOTE ASSIGN commands 
  4043.  
  4044.  By default, like all other ENABLE/DISABLE items, the initial state is ENABLEd. 
  4045.  
  4046.  
  4047. ΓòÉΓòÉΓòÉ 4.5.2. "WHATAMI" - Making Kermit GET more like FTP GET ΓòÉΓòÉΓòÉ
  4048.  
  4049. Those who are accustomed to using client/server applications such as FTP expect 
  4050. that certain kinds of commands, when given to the client, will affect the 
  4051. server correspondingly.  Most notable among these commands (in FTP's case) are 
  4052. those that set the transfer mode: BINARY, ASCII, etc. 
  4053.  
  4054. In Kermit, however, the transfer mode has always been determined by the file 
  4055. sender, a concept totally unrelated to the client/server distinction, and less 
  4056. than obvious to most people.  Furthermore, Kermit programs do not always have a 
  4057. client/server relationship - there is also the send/receive arrangement. 
  4058.  
  4059. C-Kermit 5A(190) and MS-DOS Kermit 3.14 implement a new "What Am I" feature, 
  4060. which operates transparently to the user (i.e. there are no commands to control 
  4061. it), and results in FTP-like operation when: 
  4062.  
  4063.    1. One Kermit program is in SERVER mode, the other is a client, AND: 
  4064.  
  4065.    2. Both Kermit programs support the WHATAMI feature.  Currently, these are 
  4066.       limited to C-Kermit 5A(190), MS-DOS Kermit 3.14, and IBM Mainframe Kermit 
  4067.       4.3.1. 
  4068.  
  4069.  Presently, the WHATAMI feature affects only the GET command, and addresses the 
  4070.  following scenario: 
  4071.  
  4072.    1. User starts a Kermit server, giving it no special settings. 
  4073.  
  4074.    2. User tells the client to: 
  4075.  
  4076.       SET FILE TYPE BINARY 
  4077.       SET FILE NAMES LITERAL 
  4078.       GET cko190.zip 
  4079.  
  4080.    3. The file is transferred in text mode when the user expected a binary 
  4081.       transfer, and the name was converted even though the user wanted it not 
  4082.       to be changed. 
  4083.  
  4084.  At the beginning of any protocol transaction, the two Kermits exchange "What 
  4085.  Am I" information as part of the S or I packet data.  This information 
  4086.  includes (a) whether I am a client or server; (b) my transfer mode (text or 
  4087.  binary); and (c) my file name handling (literal or converted). 
  4088.  
  4089.  Then, when the server receives a GET-command packet from the client, AND if 
  4090.  WHATAMI information has been successfully exchanged, then the server switches 
  4091.  its file transfer mode and file name handling to the client's corresponding 
  4092.  modes.  Nothing special happens when files are sent TO the server, since this 
  4093.  works right anyway, using the previous mechanisms. 
  4094.  
  4095.  Hopefully this change will result in more pleasant surprises than unpleasant 
  4096.  ones.  One Beta tester (a seasoned Kermit user), however, was unpleasantly 
  4097.  surprised when he sent the following commands from a client to a server: 
  4098.  
  4099.  REMOTE SET FILE TYPE BINARY 
  4100.  GET OOFA.ZIP 
  4101.  
  4102.  The file arrived in text mode because the client was in text mode.  The user 
  4103.  was relying of the old rule, by which the file sender informs the file 
  4104.  receiver of the transfer mode via the attribute packet, but since the WHATAMI 
  4105.  exchange took place after the REMOTE SET, it changed the server's mode back to 
  4106.  text.  To cure this situation, REMOTE SET FILE TYPE now sets the local file 
  4107.  transfer mode too. 
  4108.  
  4109.  Should all this sound confusing, remember that the WHATAMI feature (and the 
  4110.  other mechanisms for reconciling file transfer mode) make a difference only 
  4111.  when the sender and receiver's file transfer modes do not agree.  The rules 
  4112.  can be summarized like this: 
  4113.  
  4114.    1. To be certain of the file transfer mode, give the same SET FILE TYPE 
  4115.       command to both Kermits (exception: when VMS C-Kermit is sending a file, 
  4116.       it determines the transfer mode for each file automatically). 
  4117.  
  4118.  In case you did not do this, and the transfer modes of the two Kermit programs 
  4119.  disagree when the file transfer starts: 
  4120.  
  4121.    2. If the file sender is VMS C-Kermit, it determines the file type 
  4122.       automatically unless its file type has been set to IMAGE or LABELED. 
  4123.       Otherwise: 
  4124.  
  4125.    3. If both Kermits have the WHATAMI feature, the client program's transfer 
  4126.       mode prevails.  Otherwise: 
  4127.  
  4128.    4. If both Kermit programs have Attribute-packet capability, the sender will 
  4129.       inform the receiver of the transfer mode, and the receiver will switch to 
  4130.       the sender's transfer mode automatically.  Otherwise: 
  4131.  
  4132.    5. The transfer proceeds with each Kermit program using the transfer mode 
  4133.       that the user has told it to use.  This can result in mismatches, which 
  4134.       are usually not what was intended. 
  4135.  
  4136.  Since not all Kermit implementations - particularly those found in commercial 
  4137.  or shareware software packages - implement the WHATAMI feature or Attribute 
  4138.  packets, it is always safest to inform both Kermit programs of the transfer 
  4139.  mode prior to file transfer. 
  4140.  
  4141.  
  4142. ΓòÉΓòÉΓòÉ 4.6. International Character Sets ΓòÉΓòÉΓòÉ
  4143.  
  4144. Since Using C-Kermit was published: 
  4145.  
  4146.      Edit 189 of C-Kermit added support for Hebrew character sets. 
  4147.      Edit 190 added Hebrew terminal emulation to OS/2 C-Kermit. 
  4148.      Edit 190 added support for the Hewlett-Packard Roman8 character set. 
  4149.      Edit 191 added support for Russian terminal emulation. 
  4150.  
  4151.  
  4152. ΓòÉΓòÉΓòÉ 4.6.1. Hebrew Character Sets ΓòÉΓòÉΓòÉ
  4153.  
  4154. C-Kermit 5A(189) has the following new commands for Hebrew file transfer: 
  4155.  
  4156.  SET TRANSFER CHARACTER-SET HEBREW-ISO: ISO 8859-8 Latin/Hebrew Alphabet 
  4157.  SET FILE CHARACTER-SET HEBREW-ISO:    ISO 8859-8 Latin/Hebrew Alphabet 
  4158.  SET FILE CHARACTER-SET CP862:         Hebrew PC Code Page 
  4159.  SET FILE CHARACTER-SET HEBREW-7:      DEC 7-Bit (VT100) Hebrew 
  4160.  
  4161.  These commands work just like the corresponding commands for Cyrillic 
  4162.  character sets, described in Chapter 9 of Using C-Kermit  When receiving 
  4163.  files, C-Kermit recognizes Hebrew files automatically if the file sender tags 
  4164.  the file as Hebrew in the Attribute packet, which the file sender should do if 
  4165.  it has been given the SET TRANSFER CHARACTER-SET HEBREW command; C-Kermit does 
  4166.  not, however, switch automatically to a Hebrew file character-set, so you must 
  4167.  choose one in advance if that's what you want.  The tag is "I6/138" (these are 
  4168.  ISO registration numbers).  When sending files in Hebrew mode, of course, 
  4169.  C-Kermit includes the same tag. 
  4170.  
  4171.  An invertible translation table between Latin/Hebrew and CP862 is used during 
  4172.  both terminal emulation and file transfer.  The translation table between 
  4173.  Hebrew-7 and Latin/Hebrew, however, is not invertible because these character 
  4174.  sets are different sizes. 
  4175.  
  4176.  Here is an example of uploading a Hebrew file from a PC to UNIX.  The PC 
  4177.  version is coded in the Hebrew PC code page, and the UNIX version is to be 
  4178.  stored in the 7-bit Hebrew character-set so it can be sent as network e-mail: 
  4179.  
  4180.   UNIX> set file character-set hebrew-7 ; I want 7-bit text for email
  4181.   UNIX> receive                         ; Wait for the file.
  4182.   Alt-X                                 ; Escape back to the PC
  4183.   OS/2> set file type text              ; Make sure we are in text mode
  4184.   OS/2> set file character-set cp862    ; File is in Hebrew PC code page
  4185.   OS/2> set xfer character-set hebrew   ; Send using ISO Latin/Hebrew
  4186.   OS/2> send rab.oof                    ; Send the file
  4187.  
  4188.  The file sender automatically tells the file receiver that the transfer 
  4189.  character-set is Hebrew. 
  4190.  
  4191.  The three Hebrew character sets are also available for use in C-Kermit's 
  4192.  TRANSLATE command, which translates a local file from one character-set to 
  4193.  another.  Thus you can use C-Kermit to convert a local file from, say, 
  4194.  Latin/Hebrew to Hebrew-7. 
  4195.  
  4196.  C-Kermit's Hebrew file transfer features can be used in conjunction with 
  4197.  MS-DOS Kermit 3.13 and later (with which C-Kermit shares the same translation 
  4198.  tables to ensure consistent translations) and IBM Mainframe Kermit 4.2 or 
  4199.  later, which translates between Latin/Hebrew and IBM CECP 424 (the Hebrew 
  4200.  EBCDIC Country Extended Code Page).  Hebrew character-set translation is 
  4201.  enabled during terminal emulation via the command: 
  4202.  
  4203.  SET TERMINAL CHARACTER-SET { HEBREW-ISO, HEBREW-7, CP862 } [ local-cset ] 
  4204.  
  4205.  The terminal character-set affects not only CONNECT mode, but also the session 
  4206.  log and the TRANSMIT command. 
  4207.  
  4208.  Please refer to the section on Hebrew Terminal Emulation for additional 
  4209.  details. 
  4210.  
  4211.  
  4212. ΓòÉΓòÉΓòÉ 4.6.2. The Hewlett Packard Roman8 Character Set ΓòÉΓòÉΓòÉ
  4213.  
  4214. C-Kermit 5A(190) adds support for Hewlett Packard ROMAN8 as a file 
  4215. character-set and a terminal character-set.  This is an 8-bit character-set 
  4216. roughly equivalent, but not identical, to Latin-1, and (of course) with 
  4217. entirely different encoding.  The translations between HP ROMAN8 and Latin-1 
  4218. are invertible.  Commands: 
  4219.  
  4220. SET FILE CHARACTER-SET HP-ROMAN8 
  4221. SET TERMINAL CHARACTER-SET HP-ROMAN8 
  4222.  
  4223.  
  4224. ΓòÉΓòÉΓòÉ 4.7. Script Programming ΓòÉΓòÉΓòÉ
  4225.  
  4226. Script programming has been enhanced by the addition of commands, variables, 
  4227. and functions. 
  4228.  
  4229.       New IF Commands 
  4230.       New \v() Variables 
  4231.       New \f() Functions 
  4232.       INPUT and OUTPUT Command Improvements 
  4233.       The New MINPUT Command 
  4234.       Other New or Improved Script Programming Commands 
  4235.  
  4236.  
  4237. ΓòÉΓòÉΓòÉ 4.7.1. New IF Commands ΓòÉΓòÉΓòÉ
  4238.  
  4239.  IF DIRECTORY name succeeds if name is the name of a directory or a 
  4240.      file-structured device, fails otherwise.  Edit 190. 
  4241.  
  4242.  IF NEWER file1 file2 compares modification (or creation) date/times of two 
  4243.      files, succeeds if first file is newer than second file.  Edit 190. 
  4244.  
  4245.  IF REMOTE-ONLY succeeds if C-Kermit was started with the -R (uppercase) 
  4246.      command-line option, fails otherwise.  This lets you advise C-Kermit that 
  4247.      you only intend to use it in remote mode (which rarely, if ever, applies 
  4248.      to OS/2 C-Kermit). 
  4249.  
  4250.  IF EQUAL, IF LLT, IF LGT string comparison commands, as of edit 190, allow the 
  4251.      use of braces around comparands that contain imbedded spaces, for example: 
  4252.  
  4253.           IF EQUAL \%a {sentence with four words} echo They are equal.
  4254.  
  4255.      Prior to edit 190, constructions like this would cause a parse error (see 
  4256.      p.239, Using C-Kermit). 
  4257.  
  4258.  
  4259. ΓòÉΓòÉΓòÉ 4.7.2. New \v() Variables ΓòÉΓòÉΓòÉ
  4260.  
  4261. The following built-in variables have been added since Using C-Kermit was 
  4262. published: 
  4263.  
  4264.  \v(charset)     C-Kermit's local character set.  Use this (e.g.) in scripts 
  4265.                  for deciding which character set to use when printing screen 
  4266.                  messages. 
  4267.  
  4268.  \v(connection)  When C-Kermit has made a SET LINE or SET HOST connection, this 
  4269.                  variable tells the connection type: "serial", "tcp/ip_telnet", 
  4270.                  "decnet_lat", "netbios", etc. If C-Kermit is in remote mode - 
  4271.                  i.e. it has not made a connection to another computer - the 
  4272.                  value of this variable is "remote". 
  4273.  
  4274.  \v(cps)         gives speed in characters (bytes) per second of the most 
  4275.                  recent file transfer.  If a group of files was transferred, 
  4276.                  the figure applies to the whole group. 
  4277.  
  4278.  \v(dialstatus)  contains a numeric result code for the most recent DIAL 
  4279.                  command: 
  4280.  
  4281.                  -1       No DIAL command given yet 
  4282.                   0       DIAL succeeded 
  4283.                   1       Modem type not specified 
  4284.                   2       Communication device not specified 
  4285.                   3       Device can't be opened 
  4286.                   4       Communication speed not specified 
  4287.                   5       Hangup failure 
  4288.                   6       Internal error (memory allocation, etc) 
  4289.                   7       Device input/output error 
  4290.                   8       DIAL TIMEOUT expired 
  4291.                   9       Dialing interrupted by user 
  4292.                  10       Modem not ready 
  4293.                  11-19    (reserved) 
  4294.                  20       Modem command error 
  4295.                  21       Failure to initialize modem 
  4296.                  22       Phone busy 
  4297.                  23       No carrier 
  4298.                  24       No dialtone 
  4299.                  25       Ring (incoming call) 
  4300.                  26       No answer 
  4301.                  27       Disconnected 
  4302.                  28       Answered by voice 
  4303.                  29       Access denied, forbidden call 
  4304.                  98       Unknown error 
  4305.                  99       Unspecified failure detected by modem 
  4306.  
  4307.  \v(evaluate)    result of most recent EVALUATE command. 
  4308.  
  4309.  \v(ftype)       current FILE TYPE setting: "text" or "binary".  In OS/2 and 
  4310.                  VMS, also "labeled".  In VMS only, also "image". 
  4311.  
  4312.  \v(keyboard)    the keyboard model: "88", "101", or "122". 
  4313.  
  4314.  \v(modem)       current modem type (SET MODEM value). 
  4315.  
  4316.  \v(parity)      current PARITY setting: "even", "odd", "mark", "none", or 
  4317.                  "space". 
  4318.  
  4319.  \v(newline)     is the newline character or sequence appropriate to the 
  4320.                  operating system where C-Kermit is running, for example 
  4321.                  linefeed (\10) for UNIX, carriage return (\13) for OS-9, 
  4322.                  carriage-return linefeed (\13\10) for OS/2. 
  4323.  
  4324.  \v(minput)      a number telling which MINPUT search string was matched: 0 = 
  4325.                  none of them; 1 = the first one, etc. (see section on MINPUT 
  4326.                  below). 
  4327.  
  4328.  \v(rexx)         (OS/2 32-bit only) the return value from the last REXX 
  4329.                  command issued. 
  4330.  
  4331.  \v(rows)        the number of rows (lines) on the console terminal / screen, 
  4332.                  i.e. its length, -1 if unknown. 
  4333.  
  4334.  \v(cols)        the number of columns on the console terminal / screen, i.e. 
  4335.                  its width, -1 if unknown.. 
  4336.  
  4337.  \v(terminal)    terminal type, if known, otherwise "unknown". 
  4338.  
  4339.  \v(query)       the result of most recent REMOTE QUERY command. 
  4340.  
  4341.  \v(space)       number of free bytes on current storage device (OS/2 only). 
  4342.  
  4343.  \v(startup) (OS/2 only) Disk:Directory from which C-Kermit was started. 
  4344.  
  4345.  \v(sysid)       Kermit system/OS code, from pp.275-278 of the Kermit book: 
  4346.  
  4347.                                   U8 = MS-DOS (and Windows)
  4348.                                   U1 = UNIX
  4349.                                   D7 = VMS
  4350.                                   UD = OS-9
  4351.                                   L3 = Amiga
  4352.                                   A3 = Macintosh
  4353.                                   UO = OS/2
  4354.                                   F3 = AOS/VS
  4355.                                   K2 = Atari ST
  4356.                                   MV = Stratus VOS
  4357.                                   etc...
  4358.  
  4359.  
  4360. ΓòÉΓòÉΓòÉ 4.7.3. New \f() Functions ΓòÉΓòÉΓòÉ
  4361.  
  4362. The following functions were added since publication of Using C-Kermit: 
  4363.  
  4364.  \Fdate(filename) returns the modification (or creation) date of the given file 
  4365.      in "yyyymmdd hh:mm:ss" format, or else the empty string upon failure. 
  4366.      Edit 190. 
  4367.  
  4368.  \Freplace(s1,s2,s3). This function replaces all occurrences of the string s2 
  4369.      in the string s1 by the string s3.  s1 and s2 must be at least one 
  4370.      character long.  s3 can be omitted, in which case all occurrences of s2 
  4371.      are removed from s1.  If s2 is omitted, s1 is returned unchanged. 
  4372.      Examples: 
  4373.  
  4374.           \freplace(oofa,o,O)  = OOfa
  4375.           \freplace(oofa,o,oo) = oooofa
  4376.           \freplace(oofa,o)    = fa
  4377.           \freplace(oofa)      = oofa
  4378.  
  4379.      or (more practically for OS/2): 
  4380.  
  4381.           \freplace(\v(cmdfile),\\,/) ; replace back- by forward slashes
  4382.  
  4383.  \Fsize(filename) tells the size, in characters (bytes), of the given file. 
  4384.  
  4385.  
  4386. ΓòÉΓòÉΓòÉ 4.7.4. INPUT and OUTPUT Command Improvements ΓòÉΓòÉΓòÉ
  4387.  
  4388. As of edit 190, the INPUT and OUPUT commands are buffered, which results in 
  4389. greater speed of execution. 
  4390.  
  4391. The new command: 
  4392.  
  4393. SET OUTPUT PACING number 
  4394.  
  4395. causes C-Kermit to pause for (at least) the indicated number of milliseconds 
  4396. (thousandths of a second) between each character in the OUTPUT string.  Use 
  4397. this option when OUTPUT'ing characters to a device that can't receive 
  4398. characters at the full communication speed without losing or garbling them. The 
  4399. default OUTPUT PACING is 0, i.e. no pauses.  Display with SHOW SCRIPTS. Edit 
  4400. 189.  As of edit 190, the OUTPUT command string interprets \N as an indication 
  4401. to send a NUL (ASCII 0). 
  4402.  
  4403.  
  4404. ΓòÉΓòÉΓòÉ 4.7.5. The New MINPUT Command ΓòÉΓòÉΓòÉ
  4405.  
  4406. The new command, MINPUT ("multiple input") is a version of the INPUT command 
  4407. that looks for more than one string.  Syntax: 
  4408.  
  4409. MINPUT sec [ string1 [ string2 [ string3 [ ... ] ] ] ] 
  4410.  
  4411. Strings are separated by spaces.  If any of the search strings is encountered 
  4412. within the timeout interval, the command succeeds and the \v(minput) variable 
  4413. is set to the number of the string that was found: 1, 2, 3, etc.  If none of 
  4414. the search strings is found, the command times out, fails, and \v(minput) is 
  4415. set to 0.  All SET INPUT paramaters apply - SET INPUT CASE, etc. Example: 
  4416.  
  4417. minput 30 Login: Username: Ready
  4418. if success goto LBL\v(minput)
  4419. end 1 Prompt didn't arrive.
  4420.  
  4421. looks for any of the three strings "Login:", "Username:", or "Ready" and then 
  4422. goes to one of the labels "LBL1", "LBL2", or "LBL3", depending on which string 
  4423. was matched. 
  4424.  
  4425. To include a space in a string, enclose it in { braces }. 
  4426.  
  4427. minput 20 {a b} c
  4428.  
  4429. This searches for either "a b" or "c". 
  4430.  
  4431. As in the regular INPUT and REINPUT commands, leading and trailing spaces are 
  4432. stripped from each search string unless it is enclosed in { braces }. Example: 
  4433.  
  4434. minput 20 {  abc  } {{ def }}    ghi
  4435.  
  4436. searches for "  abc  ", "{ def }", or "ghi". 
  4437.  
  4438.  
  4439. ΓòÉΓòÉΓòÉ 4.7.6. Other New or Improved Script Programming Commands ΓòÉΓòÉΓòÉ
  4440.  
  4441.  EVALUATE arithmetic-expression 
  4442.      The new EVALUATE command evaluates arithmetic expressions for you, 
  4443.      printing the answer.  It is exactly like the \feval() function described 
  4444.      in the book, but for interactive use: you can type the expression 
  4445.      directly, and the answer is printed, e.g.: 
  4446.  
  4447.           C-Kermit> evaluate 1+1
  4448.           2
  4449.           C-Kermit> eval 6!
  4450.           720
  4451.           C-Kermit> def \%a (7 + 8)
  4452.           C-Kermit> ev (1 + 2) * (\%a - 3)
  4453.           36
  4454.  
  4455.  FORWARD label 
  4456.      Like GOTO, except the label search begins at the current position in the 
  4457.      macro or command file, rather than at the beginning.  It will not find 
  4458.      labels that have already been passed.  The major use for a command like 
  4459.      this would be to improve the performance of script programs that contain a 
  4460.      lot of forward GOTOs, especially when that program is a command file that 
  4461.      will be executed from a diskette.  This is obviously not good programming 
  4462.      practice - since such programs can easily break of blocks of code are 
  4463.      moved around - but then neither are GOTOs themselves.  If the FORWARD 
  4464.      label search fails in the current macro or TAKE file, the search continues 
  4465.      in the forward direction only in superior macros macros and TAKE files. 
  4466.  
  4467.      Note:  The FORWARD command has been used extensively in the CKERMIT.INI 
  4468.      file beginning with C-Kermit 5A(190), resulting in a dramatic decrease in 
  4469.      startup time. 
  4470.  
  4471.  GETC variable-name [ prompt-string ] 
  4472.      The new GETC command (edit 190) lets a script program prompt the user to 
  4473.      type a single character.  Example: 
  4474.  
  4475.           GETC \%a Press any key to continue:
  4476.  
  4477.      The character is stored in the given variable. 
  4478.  
  4479.  WRITE-LINE file text 
  4480.      This is exactly like the WRITE command, which is used to send the text to 
  4481.      the specified file (FILE, SCREEN, PACKET-LOG, etc).  The difference is 
  4482.      that WRITE-LINE always formats the output text as a line, or record, 
  4483.      appropriate to the underlying operating system's file format.  This allows 
  4484.      Kermit script programs to create text files in a system-independent 
  4485.      fashion.  Synonym: WRITELN.  WR, WRI, and WRIT are still accepted as 
  4486.      abbrevitions for WRITE.  Also see the \v(newline) variable.  Edit 190. 
  4487.  
  4488.  COPY oldfilename newfilename 
  4489.      Makes a new copy of the file.  Edit 191. 
  4490.  
  4491.  RENAME oldfilename newfilename 
  4492.      The second argument (normally the new name for the file) is allowed to be 
  4493.      a directory name (or, in OS/2, a device and directory name), in which case 
  4494.      the file is moved to the given (device and) directory, keeping its 
  4495.      original name.  Edit 190. 
  4496.  
  4497.  RETURN and END 
  4498.      These commands may now be given, with the expected results, from within 
  4499.      the command-lists of FOR, WHILE, or XIF commands.  Edit 190. 
  4500.  
  4501.  ASK and ASKQ 
  4502.      These commands now allow question mark and backslash to be entered just 
  4503.      like any other text character.  Prior to edit 190, question mark would 
  4504.      make a help message pop up, and backslash would fulfill its normal 
  4505.      function of introducting a variable or quoting a special character. 
  4506.      However, these commands are unlikely ever to be used by somebody who will 
  4507.      reply to a question with a Kermit variable name and expect it to be 
  4508.      evaluated.  Nor should they be expected to "quote" question marks.  This 
  4509.      change makes for smoother dialogs between Kermit scripts and users, and it 
  4510.      also allows users to type DOS-like filenames such as C:\TEMP\OOFA.TXT, 
  4511.      which could not otherwise be entered except by doubling each backslash. 
  4512.      However, script writers should note that the mere fact that a DOS path 
  4513.      name can be entered into a variable via: 
  4514.  
  4515.           ask \%f { Please type the DOS path name: }
  4516.            Please type the DOS path name: c:\123\files\widgets.wks
  4517.  
  4518.      does not mean that the resulting variable can be used bare and 
  4519.      unprotected. For example: 
  4520.  
  4521.           send foo.bar \%f
  4522.  
  4523.      will not do what you think, because the SEND command will evaluate \%f 
  4524.      "too much" (in this case "\123" becomes becomes "{", i.e. ASCII character 
  4525.      number 123, and \files looks like the beginning of a Kermit function, and 
  4526.      results in a syntax error).  The needed protection comes from 
  4527.      \fcontents(): 
  4528.  
  4529.           send foo.bar \fcontents(\%f)
  4530.  
  4531.      which is replaced by variable's definition ("contents") but does not 
  4532.      evaluate it any further. 
  4533.  
  4534.  
  4535. ΓòÉΓòÉΓòÉ 4.7.7. Using REXX ΓòÉΓòÉΓòÉ
  4536.  
  4537. As of edit 190, OS/2 C-Kermit (32-bit version only) has a REXX programming 
  4538. interface consisting of the single command, REXX.  REXX <command> executes the 
  4539. given REXX command, for example: 
  4540.  
  4541. REXX SAY "Hello"
  4542.  
  4543. or: 
  4544.  
  4545. REXX RETURN "Goodbye"
  4546.  
  4547. or: 
  4548.  
  4549. REXX CALL filename [ text ]
  4550.  
  4551. which executes a REXX program from the given file.  The text, if any, is passed 
  4552. to the REXX program, where it is available as ARG(1). 
  4553.  
  4554. A REXX command or program invoked via C-Kermit's REXX command can also execute 
  4555. C-Kermit commands from within REXX procedures that are invoked via C-Kermit's 
  4556. REXX CALL command, by enclosing them in single quotes, for example: 
  4557.  
  4558. 'set parity none'
  4559. 'return \v(parity)'
  4560. say rc
  4561.  
  4562. The RETURN value from the REXX command or program is available in the C-Kermit 
  4563. variable \v(rexx).  Set this by including a RETURN <value> command in your REXX 
  4564. command or program. 
  4565.  
  4566. Q: Why would you want to use REXX from within C-Kermit? 
  4567.  
  4568. A: Many reasons: 
  4569.  
  4570.      Easier-to-use math functions 
  4571.      Running a REXX program without the overhead of starting a command shell 
  4572.      C-Kermit access to additional OS/2 specific functionality (e.g. Create 
  4573.       WPS objects, perform directory searchs, ...) 
  4574.      Add your own functions to C-Kermit's script language 
  4575.  
  4576.  There are three types of functionality provided in the C-Kermit/REXX 
  4577.  interface: 
  4578.  
  4579.    1. Ability to execute a REXX command line. 
  4580.    2. Ability to execute a REXX command file. 
  4581.    3. Ability to call C-Kermit commands from a REXX program that is executing 
  4582.       under C-Kermit. 
  4583.  
  4584.  Let's say you want to execute a one-line REXX program from within C-Kermit. 
  4585.  You would use the new C-Kermit "REXX" command.  The format of the command is: 
  4586.  
  4587.  rexx REXX-command 
  4588.  
  4589.  where REXX-command is everything after the keyword REXX to the end of the 
  4590.  line.  A simple example: 
  4591.  
  4592.   C-Kermit> rexx say "hello"
  4593.  
  4594.  executes the REXX command SAY with the parameter "hello", which prints the 
  4595.  word "hello" on your screen. 
  4596.  
  4597.  Another example, returning a value from REXX: 
  4598.  
  4599.   C-Kermit> rexx return 4 * 4
  4600.  
  4601.  the REXX command "return 4 * 4" calculates the value "16" and returns it to 
  4602.  C-Kermit.  C-Kermit stores the return value from the last REXX command in 
  4603.  \v(rexx): 
  4604.  
  4605.   C-Kermit> echo \v(rexx)
  4606.   16
  4607.  
  4608.  Let's say you want to execute a series of REXX commands, but you don't want to 
  4609.  create a REXX command file: 
  4610.  
  4611.   C-Kermit> rexx say "hello"\13 return 0
  4612.  
  4613.  This prints the string "hello" and then returns the value "0" to C-Kermit. 
  4614.  Notice that \13 (Carriage Return, Ctrl-M) was placed between the commands. 
  4615.  This is necessary because REXX expects to find each command separated by a 
  4616.  return character just as if it was being read from a file. 
  4617.  
  4618.  To execute a REXX command file, use: 
  4619.  
  4620.   C-Kermit> rexx call oofa.cmd
  4621.  
  4622.  where "oofa.cmd" is the name of your REXX command file. 
  4623.  
  4624.  Now let's say you want to gain access to a C-Kermit variable value from within 
  4625.  a REXX program, change a C-Kermit setting, or execute a C-Kermit command.  You 
  4626.  could alter your program so it is called in separate parts from a C-Kermit 
  4627.  TAKE file or macro.  But there is a better way.  Just include the C-Kermit 
  4628.  command in your REXX program.  For example, you want to set Kermit's parity 
  4629.  from within your REXX program: 
  4630.  
  4631.   /* Beginning of REXX program file */
  4632.   set parity "none"
  4633.  
  4634.  Let's say you want to set a REXX variable to the value of a C-Kermit variable: 
  4635.  
  4636.   'return \v(parity)'
  4637.   parity = rc
  4638.  
  4639.  Notice the single quotes around and the "return" command before the C-Kermit 
  4640.  variable statement.  REXX passes the quoted statement to C-Kermit for 
  4641.  evaluation.  C-Kermit interprets the command and returns to REXX the value of 
  4642.  the parity variable.  This value is then stored in the REXX special variable 
  4643.  RC.  RC stores the return value of all non-REXX commands.  The next statement 
  4644.  assigns the value of REXX variable RC to the REXX variable parity. 
  4645.  
  4646.  Q:  What happens if you create a REXX program file that contains C-Kermit 
  4647.      commands and you try to execute it outside of the C-Kermit environment? 
  4648.  
  4649.  A:  A Syntax Error. This is because the C-Kermit commands are only available 
  4650.      when C-Kermit is executing the REXX command file. 
  4651.  
  4652.  Q:  Can C-Kermit be used with REXX programming tools such as Watcom's VX-REXX? 
  4653.  
  4654.  A:  Yes and No.  C-Kermit and VX-REXX work together too.  To run a VX-REXX 
  4655.      program from within C-Kermit, first generate a .VRM file and then invoke 
  4656.      it with the C-Kermit REXX CALL command.  However, the VX-REXX program is 
  4657.      not allowed to make Presentation Manager calls, because VIO applications 
  4658.      (like C-Kermit) can't do that. 
  4659.  
  4660.  
  4661. ΓòÉΓòÉΓòÉ 4.8. External Protocols ΓòÉΓòÉΓòÉ
  4662.  
  4663. External Protocol packages supporting file transfer protocols other than Kermit 
  4664. are now supported in several ways. 
  4665.  
  4666.       The REDIRECT Command 
  4667.       New Macros for invoking external protocols 
  4668.  
  4669.  
  4670. ΓòÉΓòÉΓòÉ 4.8.1. The REDIRECT Command ΓòÉΓòÉΓòÉ
  4671.  
  4672.  Syntax:   REDIRECT command [ arguments... ] 
  4673.  
  4674.  Synonym:  <command [ arguments... ] 
  4675.  
  4676.  Edit 190.  This command allows you to run another program from the C-Kermit 
  4677.  prompt, and have its standard input and output redirected to the SET LINE / 
  4678.  SET PORT connection. 
  4679.  
  4680.  It is useful for running "external protocols" over the C-Kermit connection 
  4681.  when you have made a connection to a computer or service that does not support 
  4682.  the Kermit protocol.  REDIRECT works only with software that uses standard 
  4683.  input and output. 
  4684.  
  4685.  In OS/2 C-Kermit, the REDIRECT command works only for serial connections, and 
  4686.  not with network connections. 
  4687.  
  4688.  
  4689. ΓòÉΓòÉΓòÉ 4.8.2. New Macros ΓòÉΓòÉΓòÉ
  4690.  
  4691. The following new macro packages are available for calling external protocols 
  4692. from OS/2 C-Kermit.  They are for use with M2ZMODEM, P, CEXYZ/2, and similar 
  4693. programs.  To make these macros available, give a TAKE command for the 
  4694. appropriate file: 
  4695.  
  4696.  P101.INI 
  4697.            P 1.01 is an external protocol package by Jyrki Salmi 
  4698.            <jytasa@jyu.fi> in Finland providing Xmodem, Ymodem, Ymodem-G and 
  4699.            Zmodem send and receive capabilities on OS/2 via serial connections, 
  4700.            available from most major ftp sites, bulletin board services and 
  4701.            CompuServe. 
  4702.  
  4703.  P200.INI 
  4704.            P 2.05 is a newer release of P offering serial, IBM TCP/IP, and 
  4705.            Named Pipe connections, available from the same sources.  Version 
  4706.            2.05 of P was designed with C-Kermit in mind, and meshes naturally 
  4707.            with C-Kermit's serial and network connection methods.  The P200.INI 
  4708.            file provides several macro variables which may be redefined at the 
  4709.            C-Kermit> prompt to alter the buffer sizes and receive directory. 
  4710.  
  4711.  M2ZMODEM.INI 
  4712.            OS/2 M2ZMODEM, an external protocol package providing Xmodem, 
  4713.            Ymodem, and Zmodem send and receive capabilities on OS/2 via serial 
  4714.            connections. M2ZMODEM is a shareware program.  Version 2.12 costs 
  4715.            US$50. M2ZMODEM is available from various ftp sites, Bulletin 
  4716.            Boards, CompuServe or directly from the author: 
  4717.  
  4718.                       M Wahlgren Software Dev.
  4719.                       Kransen 4E
  4720.                       S-416 72 Gothenburg
  4721.                       SWEDEN
  4722.                       Fax: +46 31 196417
  4723.                       Phone: +46 31 196074
  4724.  
  4725.  CEXYZ2.INI 
  4726.            CEXYZ/2 is shareware from Cutting Edge Computing, POB 90476, Burton, 
  4727.            MI 48509, USA. 
  4728.  
  4729.  Each of these command files defines the following macros: 
  4730.  
  4731.  rz        Receive with Zmodem protocol. 
  4732.  sz        Send with Zmodem protocol. 
  4733.  ry        Receive with Ymodem protocol. 
  4734.  sy        Send with Ymodem protocol. 
  4735.  rg        Receive with Ymodem-G protocol. 
  4736.  sg        Send with Ymodem-G protocol. 
  4737.  rx        Receive with Xmodem protocol. 
  4738.  sx        Send with Xmodem protocol. 
  4739.  
  4740.  
  4741. ΓòÉΓòÉΓòÉ 4.9. New Command-Line Options ΓòÉΓòÉΓòÉ
  4742.  
  4743. Command-line options are commands that can be given to C-Kermit on the same 
  4744. line with which you invoke it, for example: 
  4745.  
  4746. kermit -s oofa.txt -p s
  4747.  
  4748. Command-line help and error messages have been improved, and the following 
  4749. command-line options or new features have been added: 
  4750.  
  4751.  -a  name ("as-name" for a transferred file) now allows "name" to be a device 
  4752.      or directory name, when used in conjunction with '-r' (RECEIVE), to 
  4753.      specify a device and/or directory into which all incoming files are to be 
  4754.      stored under the names they were sent with.  If "name" is not a device or 
  4755.      directory name, the (first) incoming file is stored under the given name, 
  4756.      as before. Edit 190. 
  4757.  
  4758.  -D n (where n is a number) is equivalent to the interactive command SET DELAY 
  4759.      n (has no use in OS/2 C-Kermit). 
  4760.  
  4761.  -N n (where n is a number) is the NETBIOS adapter number to be used with 
  4762.      NETBIOS connections (32-bit version only). 
  4763.  
  4764.  -R  advises C-Kermit that it will be used in remote mode only.  Of no use in 
  4765.      OS/2 C-Kermit, which always operates in local mode. 
  4766.  
  4767.  
  4768. ΓòÉΓòÉΓòÉ 4.10. Network Connections ΓòÉΓòÉΓòÉ
  4769.  
  4770. C-Kermit for OS/2 now contains a generous selection of networking options. 
  4771. Support is provided for the most commonly used networking protocols, including: 
  4772.  
  4773.       TCP/IP 
  4774.       NETBIOS 
  4775.       Named Pipes 
  4776.       DEC PATHWORKS 
  4777.       LAN modem servers 
  4778.  
  4779.  
  4780. ΓòÉΓòÉΓòÉ 4.10.1. TCP/IP Networking ΓòÉΓòÉΓòÉ
  4781.  
  4782. TCP/IP networking was added in edit 189, exactly as documented in Using 
  4783. C-Kermit (Chapters 3 and 4, etc) for the UNIX, VMS, and AOS/VS versions of 
  4784. C-Kermit.  C-Kermit's TCP/IP support works with: 
  4785.  
  4786.      IBM TCP/IP 1.2.1 (C-Kermit edit 189 and later) 
  4787.      IBM TCP/IP 2.0 (edit 190) 
  4788.      IBM OS/2 WARP Internet Access Kit (IAK) (edit 190) 
  4789.      Essex Systems TCP/2 (edit 189 and later) 
  4790.      FTP Software's PC/TCP for OS/2 (edit 190) 
  4791.      IP-Switch Vantage IP (edit 190) 
  4792.  
  4793.  TCP/IP support is not yet available for Novell LAN Workplace for OS/2.  If a 
  4794.  TCP/IP package includes an IBM- or TCP/2-compatible TCPIPDLL.DLL library, then 
  4795.  C-Kermit should work with it.  Support for other OS/2 TCP/IP packages will be 
  4796.  added in future releases.  These can be supplied in the form of small DLLs 
  4797.  that can be installed after the fact, which C-Kermit 5A(190) will load 
  4798.  automatically if you define the environment variable CKTCPIPDLL to indicate 
  4799.  the pathname. 
  4800.  
  4801.  Commands: 
  4802.  
  4803.   SET NETWORK TCP/IP
  4804.   SHOW NETWORK
  4805.   SET HOST [ ip-name-or-address [ service ] ]
  4806.   SET HOST *:port
  4807.   TELNET [ <p-name-or-address [ service ] ]
  4808.   <esc-char>I or \Ktn_ip  in CONNECT mode (Interrupt Process)
  4809.   <esc-char>A or \Ktn_ayt in CONNECT mode (Are You There?)
  4810.   <esc-char>B or \Kbreak  in CONNECT mode (Break)
  4811.   etc, the same as for UNIX, (Open)VMS, and AOS/VS.
  4812.  
  4813.  as described on pages 67-74 of Using C-Kermit. 
  4814.  
  4815.  The SET HOST * port command is new to edit 191.  It allows OS/2 C-Kermit to 
  4816.  accept incoming TCP/IP connections on the given port, which should be a number 
  4817.  other than 23.  Once a connection has been made: 
  4818.  
  4819.      SERVER mode may be used for remote file transfers; 
  4820.      CONNECT mode may be used for chat operations; or 
  4821.      scripts/macros may be executed allowing an endless number of 
  4822.       possibilities. 
  4823.  
  4824.  In the UTIL subdirectory of the C-Kermit directory, you'll find two programs 
  4825.  called TELNET and TELNETPM.EXE.  These are "stubs" that let OS/2 applications 
  4826.  such as Web Explorer/2 use C-Kermit in place of Telnet, by accepting Telnet 
  4827.  command-line arguments (such as a hostname), translating them to C-Kermit 
  4828.  syntax, and invoking C-Kermit with them.  This way, any applications that 
  4829.  think they are invoking TELNET or TELNETPM will actually be starting up 
  4830.  C-Kermit to do the same thing, which has certain advantages (see below).  If 
  4831.  you would like to set your system up this way, just put TELNET.EXE and 
  4832.  TELNETPM.EXE in a directory that is higher up in your OS/2 PATH than then real 
  4833.  TELNET and TELNETPM programs. 
  4834.  
  4835.  The SHOW NETWORK command tells which TCP/IP interface DLL was loaded, if any. 
  4836.  If you think that a TCP/IP DLL should have been loaded, but it was not, you 
  4837.  can find out why from C-Kermit's debug log: 
  4838.  
  4839.   [C:\MYDIR] ckermit -d -Y
  4840.   See messages...
  4841.   C-Kermit> exit
  4842.   [C:\MYDIR] more < debug.log
  4843.  
  4844.  Hint:  Remember that C-Kermit's TCP/IP interface DLLs must be kept in the same 
  4845.  directory as C-Kermit itself (as noted in the READ.ME file, and as done by the 
  4846.  install procedure). 
  4847.  
  4848.  As of edit 191, the TELNET feature also has an added "window-size" negotiation 
  4849.  capability, which lets C-Kermit automatically inform the TELNET server of its 
  4850.  screen dimensions (if the remote TELNET server also supports this capability, 
  4851.  known as NAWS, "negotiate about window size", use of which is negotiated 
  4852.  automatically). 
  4853.  
  4854.  On a TCP/IP TELNET connection, you should normally have PARITY set to NONE and 
  4855.  FLOW-CONTROL also set to NONE.  If file transfer does not work with these 
  4856.  settings (for example, because the remote TELNET server only gives a 7-bit 
  4857.  data path), use SET PARITY SPACE.  Do not use SET PARITY MARK, EVEN, or ODD on 
  4858.  a TELNET connection - it interferes with TELNET protocol. 
  4859.  
  4860.  TELNET sessions are treated just like serial communications sessions as far as 
  4861.  "terminal bytesize" and "command bytesize" are concerned.  If you need to view 
  4862.  and/or enter 8-bit characters during a TELNET session, you must tell C-Kermit 
  4863.  to SET TERMINAL BYTESIZE 8, SET COMMAND BYTESIZE 8, and SET PARITY NONE. 
  4864.  
  4865.  Edit 191 supports TELNET "binary mode", meaning that C-Kermit can negotiate 
  4866.  binary mode with the TELNET server.  This is rather complicated, obscure, and 
  4867.  confusing, and so you should not even bother to read more about this unless 
  4868.  you are having trouble with your TELNET connections. 
  4869.  
  4870.  A TELNET connection is in Network Virtual Terminal (NVT) mode unless binary 
  4871.  mode is negotiated.  According to the TELNET specification, NVT mode means 
  4872.  only 7-bit characters are allowed, and carriage returns must be sent as CRLFs. 
  4873.  BINARY mode is generally taken to mean that 8-bit characters are allowed, and 
  4874.  carriage returns are sent as-is.  Unfortunately, there is little agreement 
  4875.  among TELNET server implementations about just what binary mode means, nor, 
  4876.  for that matter, how carriage returns are to be handled in binary more -- or 
  4877.  for that matter, in NVT mode.  C-Kermit 5A(191) lets you adjust to every 
  4878.  conceivable (mis)interpretation of the rules using the following commands: 
  4879.  
  4880.  SET TELNET BINARY-MODE { ACCEPTED, REFUSED, REQUESTED } ACCEPTED means "I will 
  4881.      enter binary mode if asked."  REFUSED means "I will refuse to enter binary 
  4882.      mode if asked."  REQUESTED means "I will actively request the TELNET 
  4883.      server to enter binary mode."  REFUSED is the default, and works in most 
  4884.      situations.  Some TELNET servers, however, might request binary mode, and 
  4885.      if it is refused, certain types of file transfers or other operations 
  4886.      might not work, or 8-bit characters might not be displayed (or sent) in 
  4887.      CONNECT mode.  In such cases, try logging out, then telling C-Kermit to 
  4888.      "set telnet binary accepted", logging in again, and trying the same 
  4889.      operations again.  (By the way, in order to see and send 8-bit characters, 
  4890.      you also must have PARITY set to NONE and TERMINAL BYTESIZE set to 8.)  If 
  4891.      you still have trouble with 8-bit characters or file transfer, then try 
  4892.      "set telnet binary requested". 
  4893.  
  4894.  SET TELNET NEWLINE-MODE { BINARY, NVT } { ON, OFF, RAW } This command was 
  4895.      "strengthened" in edit 191 to allow the handling of carriage returns to be 
  4896.      specified separately for binary mode and NVT mode.  The default is ON 
  4897.      (send CR as CRLF) in NVT mode and RAW (send CR as CR) in binary mode.  If 
  4898.      you experience troubles that seem related to carriage returns -- for 
  4899.      example, screen lines overprinting each other, double spacing when there 
  4900.      should be single spacing, failure of the host application to execute 
  4901.      commands after you press the Enter key, etc, then escape back to the 
  4902.      C-Kermit prompt, "show net" to see if your connection is in NVT or binary 
  4903.      mode, and then try various TELNET NEWLINE settings for the indicated 
  4904.      connection mode. 
  4905.  
  4906.  When TELNET'ing into an OS/2 system, you should set your terminal type to 
  4907.  ANSI.  This is particularly important if you are going to use C-Kermit or 
  4908.  TELNET on OS/2 system to establish a second connection out from the PC that 
  4909.  you have TELNET'ed into. 
  4910.  
  4911.  Users of IP-Switch Vantage IP may notice a brief TRANSMISSION BLOCKED message 
  4912.  after typing the first character upon entering terminal mode.  The blocked 
  4913.  transmission does not result in any data loss or performance degradation as it 
  4914.  only occurs only on the first typed character. 
  4915.  
  4916.  If you SET TERMINAL DEBUG ON or SET DEBUG SESSION (same thing), TELNET 
  4917.  protocol negotiations will be displayed on your screen.  But most of the 
  4918.  interesting negotiations happen at the time the SET HOST or TELNET command is 
  4919.  given, before CONNECT mode is entered, so you won't see them on your screen. 
  4920.  However, you can still capture them in the debug log ("log debug"). 
  4921.  
  4922.  Q:  Why use Kermit on a TCP/IP connection rather than TELNET and FTP? 
  4923.  
  4924.  A:  Many reasons: Unlike TELNET, C-Kermit can also transfer files. C-Kermit 
  4925.      has a script programming language, a powerful key mapping facility, screen 
  4926.      rollback, color selection, and many other amenities lacking in most TELNET 
  4927.      programs.  It also has a unique ability to translate character sets, both 
  4928.      during terminal emulation and file transfer.  Many services are coming on 
  4929.      the Internet which do not provide FTP, but do provide Kermit file 
  4930.      transfer. 
  4931.  
  4932.  Q:  Why is Kermit file transfer over a TCP/IP connection slower than FTP? 
  4933.  
  4934.  A:  Because the Kermit program on the remote end of the connection is probably 
  4935.      not running directly on a TCP socket, but rather running underneath a 
  4936.      TELNET server, usually on a pseudoterminal and under a login shell, with 
  4937.      the vast amounts of per-character overhead all of that implies.  Also 
  4938.      Kermit does more than FTP, especially when transferring in text mode. 
  4939.      Still, you can get reasonably fast transfer rates by using large window 
  4940.      sizes, long packets, and control-character unprefix (but remember not to 
  4941.      unprefix character 255!). 
  4942.  
  4943.  
  4944. ΓòÉΓòÉΓòÉ 4.10.1.1. SOCKS 4.2 Client Support ΓòÉΓòÉΓòÉ
  4945.  
  4946. As of edit 191, C-Kermit provides support for SOCKS 4.2 servers when using IBM 
  4947. TCP/IP 2.0, IBM OS/2 WARP IAK, or a compatible protocol stack. SOCKS is one 
  4948. popular means of implementing a firewall between a private network and the 
  4949. Internet. 
  4950.  
  4951. C-Kermit shares the same SOCKS environment variables as IBM Gopher.  It also 
  4952. supports the use of local SOCKS configuration files. 
  4953.  
  4954. To specify the default SOCKS Server, add SET SOCKS_SERVER=<hostname> to your 
  4955. CONFIG.SYS file. 
  4956.  
  4957. If you must use a SOCKS Distributed Name Server, add SET SOCKS_NS=<hostname> to 
  4958. your CONFIG.SYS file. 
  4959.  
  4960. If you must use a specific <username> with your SOCKS server, be sure to add 
  4961. SET USER=<username> to your CONFIG.SYS file.  Otherwise, "os2user" will be used 
  4962. by default. 
  4963.  
  4964. The SOCKS configuration file must be placed in the directory pointed to by the 
  4965. ETC environment variable as declared in your CONFIG.SYS file.  The name should 
  4966. be SOCKS.CONF.  On a FAT file system, use SOCKS.CNF. 
  4967.  
  4968. The format of the lines in the SOCKS configuration file are as follows: 
  4969.  
  4970.      # comments 
  4971.      deny [*=userlist] dst_addr dst_mask [op port] 
  4972.      direct [*=userlist] dst_addr dst_mask [op port] 
  4973.      sockd [@=serverlist] [*=userlist] dst_addr dst_mask [op port] 
  4974.  
  4975.  op must be one of 'eq', 'neq', 'lt', 'gt', 'le', or 'ge'. dst_addr, dst_mask, 
  4976.  and port may be either numeric or name equivalents. 
  4977.  
  4978.  C-Kermit ignores the [*=userlist] and [@=serverlist] fields. Matches are 
  4979.  determined on a first match not a best match basis.  Addresses for which no 
  4980.  match is found default to "sockd". 
  4981.  
  4982.  For completeness: Fields in square brackets are optional. The optional 
  4983.  @=serverlist field with a 'sockd' line specifies the list of SOCKS servers the 
  4984.  client should try (in the given order) instead of the default SOCKS server. 
  4985.  If the @=serverlist part is omitted, then the default SOCKS server is used. 
  4986.  Commas are used in the userlist and serverlist as separators, no white spaces 
  4987.  are allowed. 
  4988.  
  4989.  
  4990. ΓòÉΓòÉΓòÉ 4.10.1.2. Using C-Kermit to Make SLIP Connections ΓòÉΓòÉΓòÉ
  4991.  
  4992. Starting with edit 191, C-Kermit can be used instead of SLIPTERM for starting 
  4993. SLIP connections, providing more extensive serial device and terminal emulation 
  4994. support than that included in SLIPTERM. 
  4995.  
  4996. Once the SLIP driver has begun execution, run C-Kermit and select port SLIPCOMx 
  4997. as your serial port, where x is the serial port in use for the SLIP connection. 
  4998. C-Kermit will obtain access to the port from the SLIP driver and you may then 
  4999. use the port as necessary to log into your SLIP server and start a SLIP 
  5000. session.  All of C-Kermit's features and capabilities are available for use 
  5001. over the serial line while C-Kermit has take control of the serial port.  Upon 
  5002. exiting C-Kermit, the port is returned to the SLIP driver which will once again 
  5003. control the port, handling all SLIP traffic. 
  5004.  
  5005. Note that C-Kermit should not be used as part of an attachment script, which is 
  5006. started by the SLIP driver itself, but should be run as a separate command 
  5007. after the SLIP driver is started.  Should scripting be required, you can use 
  5008. Kermit scripts (including the OS/2 C-Kermit REXX support as necessary) to 
  5009. perform the same tasks as an attachment script. 
  5010.  
  5011.  
  5012. ΓòÉΓòÉΓòÉ 4.10.1.3. Using C-Kermit to Make PPP Connections ΓòÉΓòÉΓòÉ
  5013.  
  5014. Starting with edit 191, C-Kermit can be used instead of SLATTACH for starting 
  5015. PPP connections, providing terminal emulation support which is not available 
  5016. when using SLATTACH. 
  5017.  
  5018. Once the PPP driver has begun execution, run C-Kermit and select port PPPCOMx 
  5019. as your serial port, where x is the serial port in use for the PPP connection. 
  5020. C-Kermit will obtain access to the port from the PPP driver and you may then 
  5021. use the port as necessary to log into your PPP server and start a PPP session. 
  5022. All of C-Kermit's features and capabilities are available for use over the 
  5023. serial line while C-Kermit has take control of the serial port.  Upon exiting 
  5024. C-Kermit, the port is returned to the PPP driver which will once again control 
  5025. the port, handling all PPP traffic. 
  5026.  
  5027. C-Kermit may be executed as part of a PPP "connect" parameter. 
  5028.  
  5029.  
  5030. ΓòÉΓòÉΓòÉ 4.10.2. Using Named Pipes ΓòÉΓòÉΓòÉ
  5031.  
  5032. As of version 5A(190), OS/2 C-Kermit (32-bit) supports NAMED PIPES as an 
  5033. interprocess communication mechanism.  Named Pipes support for local processes 
  5034. is built into OS/2.  In order to use them to communicate across a local area 
  5035. network both computers must have installed Named Pipe network support software. 
  5036. Each computer may be a Client, a Server or both.  Each server on a particular 
  5037. network has a unique Named Pipe Server Name assigned as part of the Named Pipe 
  5038. software installation. 
  5039.  
  5040. C-Kermit has been tested with the following products: 
  5041.  
  5042.      IBM LAN Server Requester (Client) to LAN Server (Server) 
  5043.      Microsoft LAN Manager Requester (Client) to LAN Manager (Server) 
  5044.      Novell NetWare Requester (Client) to Novell NetWare Requester (Server) 
  5045.  
  5046.  To have a named pipe connection connection between two Kermit programs, one 
  5047.  Kermit program must be the "server" and the other must be the "client".  The 
  5048.  server is the one that is started first, and which waits for a connection to 
  5049.  come in from the client.  The server is started this way: 
  5050.  
  5051.  SET NETWORK NAMED-PIPE [ pipename ] 
  5052.  SET HOST * 
  5053.  
  5054.  If the pipename is omitted from the SET NETWORK NAMED-PIPE command, a pipename 
  5055.  of "kermit" is used.  "SET HOST *" means to wait for a connection to come in 
  5056.  from another Kermit program. 
  5057.  
  5058.  Then the client makes a connection to the server: 
  5059.  
  5060.  SET NETWORK NAMED-PIPE [ pipename ] 
  5061.  SET HOST servername 
  5062.  
  5063.  where pipename is the pipename used by the server you want to communicate with 
  5064.  (default "kermit"), and servername is the name of the server on the network. 
  5065.  If you specify a servername of "." (period), this means your own computer; you 
  5066.  can set up such local connections even if you don't have Named Pipes network 
  5067.  support installed, e.g. between two copies of C-Kermit running in different 
  5068.  windows. 
  5069.  
  5070.  Both pipename and servername are case-independent, and can contain spaces. 
  5071.  
  5072.  There is no particular restriction on what Kermit commands can be used on a 
  5073.  named-pipe connection.  Here are some useful scenarios: 
  5074.  
  5075.    1. The named-pipe server is in Kermit SERVER mode.  Clients can perform 
  5076.       SEND, GET, REMOTE, FINISH, and similar commands. 
  5077.  
  5078.    2. Both Kermit programs are in CONNECT mode, allowing two network users to 
  5079.       "chat" with each other.  Each user should give the following commands: 
  5080.  
  5081.             set terminal echo local
  5082.             set terminal cr-display crlf
  5083.             connect
  5084.  
  5085.  To close a named-pipe connection, give the HANGUP command (or the SET HOST 
  5086.  command, specifying no hostname) to either the client or the server. 
  5087.  
  5088.  The C-Kermit named-pipe server can also wait for a client to connect.  After 
  5089.  the client disconnects, the connection will be reset to await the next client. 
  5090.  This allows for the use of kermit "server" as a pseudo-FTP site for those 
  5091.  without IBM TCP/IP. 
  5092.  
  5093.  Note:  When using Named Pipes with LAN Server or LAN Manager, only the machine 
  5094.  which has the Network Server software is capable of successfully using the SET 
  5095.  HOST * command.  This is because the client network requesters do not 
  5096.  implement the server side of the named-pipe network redirection. 
  5097.  
  5098.  Novell NetWare Requester for OS/2, on the other hand, implements both the 
  5099.  named-pipes client and server code on the client workstation and does not 
  5100.  require the existence of a Network server to operate. 
  5101.  
  5102.  
  5103. ΓòÉΓòÉΓòÉ 4.10.3. Using NETBIOS ΓòÉΓòÉΓòÉ
  5104.  
  5105. Added in edit 190: NETBIOS support, both the original NETBIOS 3.0 (NETAPI) 
  5106. interface and the newer NETBIOS 4.0 (ACSBNET) interface.  C-Kermit has been 
  5107. tested with the following products: 
  5108.  
  5109.       NETBIOS 4.0 interface (ACSNETB.DLL): 
  5110.  
  5111.            IBM LAN Adapter and Protocol Support (LAPS) as found in: 
  5112.  
  5113.                 IBM Network Transport Services/2 
  5114.                 IBM LAN Distance 
  5115.                 IBM Communication Manager/2 
  5116.                 IBM LAN Server 3.x 
  5117.                 IBM LAN Requester 3.x 
  5118.  
  5119.       NETBIOS 3.0 interface (NETAPI.DLL): 
  5120.  
  5121.            Microsoft LAN Manager Requester 
  5122.            IBM Extended Services 1.x 
  5123.            IBM LAN Server 2.x Requester 
  5124.            Novell NetWare 2.x Requester 
  5125.  
  5126.  
  5127. ΓòÉΓòÉΓòÉ 4.10.3.1. NETBIOS Client and Server ΓòÉΓòÉΓòÉ
  5128.  
  5129. To have a NETBIOS connection connection between two Kermit programs, one Kermit 
  5130. program must the "server" and the other must be the "client".  The server is 
  5131. the one that is started first, and which waits for a connection to come in from 
  5132. the client.  The server is started this way: 
  5133.  
  5134. SET NETWORK NETBIOS [ localname ] 
  5135. SET HOST * 
  5136.  
  5137. If the localname is omitted from the SET NETWORK NETBIOS command, then if a 
  5138. HOSTNAME environment variable is defined, that is used; otherwise if a 
  5139. SYSTEMNAME environment variable is defined, that is used; otherwise "kermit" is 
  5140. used (the HOSTNAME variable is created by TCP/IP installation, SYSTEMNAME by 
  5141. DECnet PATHWORKS installation; if you don't have TCP/IP or PATHWORKS installed, 
  5142. you can add a "SET HOSTNAME=blah" or "SET SYSTEMNAME=blah" statement to your 
  5143. CONFIG.SYS file).  The localname must be unique on the NETBIOS network; if not, 
  5144. the SET NETWORK command will fail. 
  5145.  
  5146. "SET HOST *" means to wait for a connection to come in from another Kermit 
  5147. program. 
  5148.  
  5149. Then the client makes a connection to the server: 
  5150.  
  5151. SET NETWORK NETBIOS [ localname ] 
  5152. SET HOST servername 
  5153.  
  5154. where localname is the new name used to identify the client Kermit session, and 
  5155. servername is the localname of the server's Kermit session. 
  5156.  
  5157. The localname and servername are case-dependent, and can contain spaces. 
  5158.  
  5159. There is no particular restriction on what Kermit commands can be used on a 
  5160. NETBIOS connection.  Here are some useful scenarios: 
  5161.  
  5162.    1. The NETBIOS server is in Kermit SERVER mode.  Clients can perform SEND, 
  5163.       GET, REMOTE, FINISH, and similar commands. 
  5164.  
  5165.    2. Both Kermit programs are in CONNECT mode, allowing two network users to 
  5166.       "chat" with each other.  Each user should give the following commands: 
  5167.  
  5168.             set terminal echo local
  5169.             set terminal cr-display crlf
  5170.             connect
  5171.  
  5172.  To close a NETBIOS connection, give the HANGUP command (or the SET HOST 
  5173.  command, specifying no hostname) to either the client or the server. 
  5174.  
  5175.  Unlike with TCP/IP connections, the C-Kermit NETBIOS server can wait for a 
  5176.  client to connect.  After the client disconnects, the connection will be reset 
  5177.  to await the next client.  This allows for the use of kermit "server" as a 
  5178.  pseudo-FTP site for those without IBM TCP/IP. 
  5179.  
  5180.  NETBIOS is the preferred protcol to use when transfering files with MS-DOS 
  5181.  Kermit or C-Kermit for OS/2 in a peer-to-peer local area network.  NETBIOS is 
  5182.  supported over most networking protocols including: Netbeui, IPX, IP, and 
  5183.  LU6.2.  In addition, it has lower overhead than all other OS/2 implemented 
  5184.  networking protocols. 
  5185.  
  5186.  
  5187. ΓòÉΓòÉΓòÉ 4.10.3.2. NETBIOS Configuration ΓòÉΓòÉΓòÉ
  5188.  
  5189. Each C-Kermit session requires the following resources from the NETBIOS 
  5190. provider: 1 Name, 32 Commands, and 1 session.  For example, if you wish to have 
  5191. three C-Kermit sessions running simultaneously in Server mode, NETBIOS must be 
  5192. configured to support at least 3 Names, 96 Commands, and 3 sessions. 
  5193.  
  5194. If the number of available NETBIOS commands is unavailable, NETBIOS support for 
  5195. the current C-Kermit session will not be installed. 
  5196.  
  5197. The default settings for IBM and NetWare NETBIOS implementations are: 
  5198.  
  5199. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5200. ΓöéProduct             ΓöéConfig File ΓöéSessionsΓöéCommandsΓöéNames Γöé
  5201. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5202. ΓöéNovell (IPXNB)      ΓöéNET.CFG     Γöé16      Γöé32      Γöé24    Γöé
  5203. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5204. ΓöéIBM NTS/2 (NETBEUI) ΓöéPROTOCOL.INIΓöé5       Γöé95      Γöé21    Γöé
  5205. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5206. The maximum settings for IBM and NetWare NETBIOS implementations are: 
  5207.  
  5208. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  5209. ΓöéProduct             ΓöéConfig File ΓöéSessionsΓöéCommandsΓöéNames Γöé
  5210. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5211. ΓöéNovell (IPXNB)      ΓöéNET.CFG     Γöé64      Γöé128     Γöé128   Γöé
  5212. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  5213. ΓöéIBM NTS/2 (NETBEUI) ΓöéPROTOCOL.INIΓöé254     Γöé255     Γöé254   Γöé
  5214. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  5215.  
  5216. The method for modifying NETBIOS resources depends on the NETBIOS product; it 
  5217. is normally done by executing the configuration program (LAPS, INSTALL, ...) or 
  5218. by manually modifying the configuration files and restarting OS/2. 
  5219.  
  5220. It is possible to have two or more products each providing NETBIOS services by 
  5221. running multiple NETBIOS protocol stacks.  All products which use LAPS may be 
  5222. mixed together.  And LAPS may be mixed with up to one product which uses the 
  5223. NETAPI.DLL product.  However, there are limitations.  In particular, you can 
  5224. not successfully run Novell NETBIOS support with IBM Extended Services. 
  5225.  
  5226. The most common dual stack combination is of IBM Netbeui (LAPS) and Novell 
  5227. IPXNB (NetWare Requester).  The installation procedure for each package is 
  5228. completely ignorant of the other protocol.  The dual stack requires that the 
  5229. configuration files be manually modified with a text editor (e.g. E.EXE).  The 
  5230. NETBIOS configuration is defined by statements in two files: NET.CFG and 
  5231. PROTOCOL.INI.  These files contains statements defining how many NETBIOS Names, 
  5232. Commands, and Sessions are available to each protocol stack.  The settings for 
  5233. each protocol stack must be consistent between the two files. 
  5234.  
  5235. For both protocols to coexist the following section to the must be added to the 
  5236. end of the PROTOCOL.INI file: 
  5237.  
  5238. [NETBIOS]
  5239.   DriverName=NETBIOS$
  5240.   <virtual adapter>=<driver>,<physical adapter>,<sessions>,<commands>,<names>
  5241.   <virtual adapter>=<driver>,<physical adapter>,<sessions>,<commands>,<names>
  5242.   ...
  5243. where: 
  5244.  
  5245.  <virtual adapter> 
  5246.      is ADAPTER0 through ADAPTER3.  The adapter numbers must be used in 
  5247.      sequence. 
  5248.  
  5249.  <driver> 
  5250.      is either ipxnb$ for Novell or netbeui$ for IBM. 
  5251.  
  5252.  <physical adapter> 
  5253.      is almost always 0 since there is usually only one physical network 
  5254.      adapter in the machine. 
  5255.  
  5256.  <sessions>, <commands>, and <names> 
  5257.      must match the settings in NET.CFG (NetWare NETBIOS section) if <driver> 
  5258.      is IPXNB$; or PROTOCOL.INI (NETBEUI section) if <driver> is NETBEUI$. 
  5259.  
  5260.  Without this additional section in PROTOCOL.INI, only IBM Netbeui will be 
  5261.  available to C-Kermit.  This section defines up to 4 virtual adapters (0-3), 
  5262.  each of which is assigned a specific NETBIOS protocol stack implementation. 
  5263.  C-Kermit allows you to choose which NETBIOS implementation you want to use by 
  5264.  using the '-N' (note uppercase) command-line option.  To use the driver 
  5265.  assigned to ADAPTER1 in the [NETBIOS] section of PROTOCOL.INI use: 
  5266.  
  5267.   ckermit -N 1
  5268.  
  5269.  The syntax of the option is: 
  5270.  
  5271.   -N adapter
  5272.  
  5273.  where adapter is one of the virtual adapter numbers (default = 0). 
  5274.  
  5275.  It is important to know which NETBIOS protocol stack you are using as both 
  5276.  machines must be using the same stack type for them to successfully 
  5277.  communicate. 
  5278.  
  5279.  The following provide examples of valid [NETBIOS] sections in PROTOCOL.INI. 
  5280.  
  5281.  Example 1: Both IBM and Novell NETBIOS implementations and one physical 
  5282.  adapter.  Novell NETBIOS is the default. 
  5283.  
  5284.   [NETBIOS]
  5285.      DriverName=NETBIOS$
  5286.      Adapter0=ipxnb$,0,48,128,16
  5287.      Adapter1=netbeui$,0,48,255,16
  5288.  
  5289.  Example 2: Both IBM and Novell NETBIOS implementations and one physical 
  5290.  adapter.  IBM NETBIOS is the default. 
  5291.  
  5292.   [NETBIOS]
  5293.      DriverName=NETBIOS$
  5294.      Adapter0=netbeui$,0,48,255,16
  5295.      Adapter1=ipxnb$,0,48,128,16
  5296.  
  5297.  Example 3: Only Novell NETBIOS implementation and one physical adapter. 
  5298.  
  5299.   [NETBIOS]
  5300.      DriverName=NETBIOS$
  5301.      Adapter0=ipxnb$,0,48,128,16
  5302.  
  5303.  Example 4:  Both IBM and Novell NETBIOS implementations and two physical 
  5304.  adapters.  IBM NETBIOS is the default.  (Novell NETBIOS cannot be assigned to 
  5305.  two physical adapters.) 
  5306.  
  5307.   [NETBIOS]
  5308.      DriverName=NETBIOS$
  5309.      Adapter0=netbeui$,0,48,255,16
  5310.      Adapter1=netbeui$,1,48,255,16
  5311.      Adapter2=ipxnb$,0,48,128,16
  5312.  
  5313.  
  5314. ΓòÉΓòÉΓòÉ 4.10.4. Using DECnet PATHWORKS ΓòÉΓòÉΓòÉ
  5315.  
  5316. DECnet LAT (Local Area Transport) support works in conjunction with DEC's 
  5317. PATHWORKS For OS/2 product version 2.3 or later, which must be installed, and 
  5318. LATCALLS.DLL must be in your LIBPATH.  To make LAT connections from C-Kermit: 
  5319.  
  5320. SET NETWORK DECNET 
  5321. SET HOST hostname 
  5322.  
  5323. and then use all of Kermit's communication features - terminal emulation, file 
  5324. transfer, etc - in the same way you would on a serial or TCP/IP connection. 
  5325.  
  5326. If you experience difficulties transferring files that contain 8-bit data, use 
  5327. SET PARITY SPACE and/or use shorter packets.  Reportedly, some character loss 
  5328. will occur in the underlying PATHWORKS transport, and sometimes even random 
  5329. disconnections; hopefully, this will be fixed in PATHWORKS 5.0. 
  5330.  
  5331.  
  5332. ΓòÉΓòÉΓòÉ 4.10.5. Using Asynchronous Communication Servers ΓòÉΓòÉΓòÉ
  5333.  
  5334. There are two methods for using remote modems accessed via LAN server 
  5335. (asynchronous communication server): 
  5336.  
  5337.    1. Map the remote port (modem) to a local port name (e.g. COM3) with a NET 
  5338.       USE command before starting Kermit, and then unmap it afterwards: 
  5339.  
  5340.             net use com3 \\server\modem
  5341.             ckermit -l com3
  5342.             net use com3 /d
  5343.  
  5344.    2. Simply use the Universal Naming Convention (UNC) resource name as the 
  5345.       port name: 
  5346.  
  5347.             ckermit -l \\server\modem
  5348.  
  5349.  Because backslash (\) is a special command character, use one of the following 
  5350.  forms at the C-Kermit prompt or in a command file or macro: 
  5351.  
  5352.   set line //server/modem
  5353.  or: 
  5354.  
  5355.   set line \\\\server\\modem
  5356.  or: 
  5357.  
  5358.   set command quoting off
  5359.   set line \\server\modem
  5360.   set command quoting on
  5361.  
  5362.  
  5363. ΓòÉΓòÉΓòÉ 4.10.6. Networking Hints and Tips ΓòÉΓòÉΓòÉ
  5364.  
  5365. The SET HOST command uses your current SET NETWORK type.  For example: 
  5366.  
  5367. SET NETWORK DECNET
  5368. SET HOST OOFA
  5369.  
  5370. will try to make a DECnet (PATHWORKS) LAT connection to DECnet node OOFA. 
  5371. However, please be aware that a SET NETWORK command will fail if the given type 
  5372. of network is not installed, or if (in the case of NETBIOS) the given name is 
  5373. already in use.  Thus a safer construction would be: 
  5374.  
  5375. SET NETWORK NETBIOS OOFA
  5376. IF FAIL STOP 1 Can't access NETBIOS network
  5377. SET HOST MUPEEN
  5378. IF FAIL STOP 1 Can't make NETBIOS connection
  5379.  
  5380. The default network type (which is used if give a SET HOST command without 
  5381. first giving a SET NETWORK command) depends on which network products you have 
  5382. installed on your OS/2 system, chosen in this order of preference: 
  5383.  
  5384.    1. TCP/IP 
  5385.    2. DECnet 
  5386.    3. Named Pipes 
  5387.  
  5388.  NETBIOS cannot be a default choice because it requires a user-assigned name. 
  5389.  
  5390.  On a TCP/IP TELNET connection, you should normally have PARITY set to NONE and 
  5391.  FLOW-CONTROL also set to NONE.  If file transfer does not work with these 
  5392.  settings (for example, because the remote TELNET server only gives a 7-bit 
  5393.  data path), use SET PARITY SPACE.  Do not use SET PARITY MARK, EVEN, or ODD on 
  5394.  a TELNET connection - it interferes with TELNET protocol. 
  5395.  
  5396.  TELNET sessions are treated just like serial communications sessions as far as 
  5397.  "terminal bytesize" and "command bytesize" are concerned.  If you need to view 
  5398.  and/or enter 8-bit characters during a TELNET session, you must tell C-Kermit 
  5399.  to SET TERMINAL BYTESIZE 8, SET COMMAND BYTESIZE 8, and SET PARITY NONE. 
  5400.  
  5401.  If you SET TERMINAL DEBUG ON or SET DEBUG SESSION (same thing), TELNET 
  5402.  protocol negotiations will be displayed on your screen.  But most of the 
  5403.  interesting negotiations happen at the time the SET HOST or TELNET command is 
  5404.  given, before CONNECT mode is entered, so you won't see them on your screen. 
  5405.  However, you can still capture them in the debug log ("log debug"). 
  5406.  
  5407.  
  5408. ΓòÉΓòÉΓòÉ 4.11. Remote Access ΓòÉΓòÉΓòÉ
  5409.  
  5410. If your OS/2 2.x system is running IBM TCP/IP, it is possible to TELNET to your 
  5411. OS/2 system to have a CMD session, in which you can run only character-mode 
  5412. commands and applications. 
  5413.  
  5414. IBM's TELNET server provides limited functionality for emulating an OS/2 full 
  5415. screen session on a VT100 or ANSI Telnet terminal.  Due to the limitations of 
  5416. the ASCII character set not all keyboard keystrokes may be replicated across 
  5417. the Telnet session.  The OS/2 VIO programming interface used in the design of 
  5418. text applications does not map well to character based terminal devices. 
  5419. Therefore you will notice slow performance.  The optimal terminal emulation to 
  5420. use from C-Kermit is ANSI.  You can use C-Kermit's SET TERMINAL TYPE ANSI 
  5421. command, or its SET TELNET TERMINAL-TYPE ANSI command. 
  5422.  
  5423. If you run a PM application (such as "help") while TELNETed to your OS/2 
  5424. system, your session will hang because control will have been transferred to 
  5425. the real keyboard, mouse, and screen.  Similarly, if you manage to invoke the 
  5426. OS/2 critical error handler during a character-mode application (for example, 
  5427. "dir a:" when there is no diskette in the A: drive).  To avoid this place 
  5428. AUTOFAIL=YES into your CONFIG.SYS file. 
  5429.  
  5430. You can run C-Kermit in a remote TCP/IP session and tell OS/2 C-Kermit to SET 
  5431. LINE to a serial device and call up a third computer.  Thus OS/2 C-Kermit can 
  5432. be used as a modem server in the TCP/IP environment. 
  5433.  
  5434. However, at present you cannot transfer files between your local Kermit program 
  5435. and OS/2 C-Kermit when TELNET'd to OS/2 due to restrictions in the OS/2 TELNET 
  5436. server. 
  5437.  
  5438. It is also possible to get an OS/2 CMD session on a serial connection when 
  5439. dialing into your OS/2 system if you are running a product such as OS2YOU, but 
  5440. C-Kermit file transfer does not yet work in this environment either. 
  5441.  
  5442.  
  5443. ΓòÉΓòÉΓòÉ 4.12. Using Kermit software instead of Lap-Link ΓòÉΓòÉΓòÉ
  5444.  
  5445. Lap-Link software is typically used to synchronize the versions of files found 
  5446. on two separate computers by transfering files across either a direct serial 
  5447. port or parallel port connection. 
  5448.  
  5449. C-Kermit and MS-DOS Kermit are well designed for this task. The SET FILE 
  5450. COLLISION UPDATE command may be used to instruct C-Kermit to only transfer 
  5451. files that are new or have changed. 
  5452.  
  5453. The XSEND command allows entire directory trees to be sent from one system to 
  5454. another. 
  5455.  
  5456. In addition, C-Kermit's SET FILE TYPE LABELED and SET FILE LABEL {ARCHIVE, 
  5457. EXTENDED, HIDDEN, READ-ONLY, and SYSTEM} commands can be used to specify which 
  5458. file attributes including extended attributes should be transfered.  This is 
  5459. particularly useful when backing up changes to an OS/2 desktop from one system 
  5460. to another. 
  5461.  
  5462. With the use of a Parallel Port NDIS driver, C-Kermit can use its network 
  5463. support to take advantage of high speed parallel port connections.  (Savant 
  5464. Software, Inc. sells parallel port drivers for OS/2 and DOS: floyd@savant.com, 
  5465. or P.O. Box 201015, Austin, TX 78720-1015.) Just add either the TCP/IP or 
  5466. NETBIOS protocol stacks to the Parallel Port MAC in IBM LAPS or IBM MPTS.  Then 
  5467. tell C-Kermit to SET NETWORK TCP/IP or NETBIOS depending on which you want to 
  5468. use.  Standard Lap-Link cables are supported. 
  5469.  
  5470.  
  5471. ΓòÉΓòÉΓòÉ 5. OS/2 C-Kermit Utilities ΓòÉΓòÉΓòÉ
  5472.  
  5473. Starting with edit 191, OS/2 C-Kermit comes with two utilities: 
  5474.  
  5475.      OS/2 C-Kermit PM Clipboard Server 
  5476.      IBM Telnet Replacements 
  5477.  
  5478.  
  5479. ΓòÉΓòÉΓòÉ 5.1. OS/2 C-Kermit PM Clipboard Server ΓòÉΓòÉΓòÉ
  5480.  
  5481. Since C-Kermit is not a PM application its ability to access the PM Clipboard 
  5482. is extremely limited.  In fact, according to IBM documentation, it shouldn't be 
  5483. possible at all.  However, C-Kermit by itself since release 190 has given users 
  5484. the ability to copy data into the PM Clipboard for use by other applications. 
  5485. It also was able to retrieve data from the PM Clipboard whenever the data was 
  5486. placed there by an application using a type of shared memory known as GETABLE 
  5487. shared memory. 
  5488.  
  5489. As of release 191, C-Kermit ships with a utility program, "ckoclip.exe", which 
  5490. is stored in the C-Kermit UTIL subdirectory.  This PM Application when active 
  5491. acts as an agent for all active C-Kermit sessions enabling C-Kermit to copy and 
  5492. paste text data to and from the clipboard with full compatibility with other 
  5493. OS/2 PM applications  (eg. TWCP and ManyClip). Now the \KPaste kverb can paste 
  5494. text data copied to the clipboard from all PM and Win-OS2 applications and the 
  5495. \KMarkCopyClip kverb will paste text into a ManyClip Clipboard. 
  5496.  
  5497. It is recommended that users place a shadow of the OS/2 C-Kermit PM Clipboard 
  5498. Server program object into their Startup folder (located within the OS/2 System 
  5499. folder.)  By doing this a single copy of the Server will be started each time 
  5500. OS/2 is loaded.  When not in use, the server uses zero CPU time and its memory 
  5501. will be paged to the swapfile. 
  5502.  
  5503.  
  5504. ΓòÉΓòÉΓòÉ 5.2. IBM Telnet Replacements ΓòÉΓòÉΓòÉ
  5505.  
  5506. When navigating the World Wide Web using IBM WebExplorer you may often come 
  5507. across Web links which require the use of a Telnet client.  Unfortunately, IBM 
  5508. WebExplorer does not allow you to configure it to use a Telnet client other 
  5509. than IBM TelnetPM.  This is because IBM WebExplorer must provide information to 
  5510. the Telnet client via the command line.  Therefore, it uses the command line 
  5511. format provided by IBM Telnet and IBM TelnetPM. 
  5512.  
  5513. However, if you wish to use C-Kermit as your Telnet client during your travels 
  5514. along the World Wide Web all is not lost.  As of edit 191, C-Kermit ships with 
  5515. a utility known as the IBM Telnet Replacement.  This utility can be found in 
  5516. the C-Kermit UTIL directory under the name "ckotel.exe". "ckotel.exe" provides 
  5517. a command line interface that is identical to that provided by IBM Telnet and 
  5518. IBM TelnetPM.  It converts the command line options into a command string that 
  5519. is then passed to C-Kermit. 
  5520.  
  5521. To install the IBM Telnet Replacement utility the following steps must be 
  5522. taken: 
  5523.  
  5524.    1. Copy "ckotel.exe" to the C-Kermit directory using the name "telnet.exe". 
  5525.       From the C-Kermit UTIL directory: 
  5526.  
  5527.             COPY CKOTEL.EXE ..\TELNET.EXE
  5528.  
  5529.    2. Copy "ckotel.exe" to the C-Kermit directory using the name 
  5530.       "telnetpm.exe". From the C-Kermit UTIL directory: 
  5531.  
  5532.             COPY CKOTEL.EXE ..\TELNETPM.EXE
  5533.  
  5534.    3. Edit the SET PATH = statement in the "config.sys" file and make sure that 
  5535.       the C-Kermit directory appears before the TCPIP\BIN directory. 
  5536.  
  5537.  Now whenever a program attempts the start IBM Telnet, C-Kermit will be started 
  5538.  instead.  This includes the any Telnet program objects that you may have 
  5539.  defined for specific hosts. 
  5540.  
  5541.  To remove this option, simply delete the "telnet.exe" and "telnetpm.exe" files 
  5542.  from your C-Kermit directory. 
  5543.  
  5544.  
  5545. ΓòÉΓòÉΓòÉ 6. OS/2 Hints and Tips ΓòÉΓòÉΓòÉ
  5546.  
  5547. OS/2 is a complex operating system.  Hints and tips are provided to make your 
  5548. use of C-Kermit on OS/2 more enjoyable and productive. 
  5549.  
  5550.       C-Kermit and the OS/2 Work Place Shell 
  5551.       Serial Port Performance 
  5552.       OS/2 Devices, Files, and Shells 
  5553.       Running C-Kermit in the Background 
  5554.       Applications that Freeze 
  5555.  
  5556.  
  5557. ΓòÉΓòÉΓòÉ 6.1. C-Kermit and the OS/2 Work Place Shell ΓòÉΓòÉΓòÉ
  5558.  
  5559. You can use the Program page in the Settings notebook of the C-Kermit program 
  5560. object to enter parameters that will affect the way the program starts. 
  5561. C-Kermit does not normally need parameters when it is opened.  You can add 
  5562. C-Kermit to the pop-up menu for a folder object (e.g. the Desktop) so you can 
  5563. start that program by selecting the choice on the pop-up menu. However, when 
  5564. you start C-Kermit, OS/2 sends any parameters to the program. OS/2 considers 
  5565. the name of a folder a parameter, so OS/2 sends the folder name to the program 
  5566. when you select a program-name choice from the pop-up menu. C-Kermit cannot 
  5567. accept a folder name as a parameter.  If you try to start C-Kermit from the 
  5568. pop-up menu of a folder and the program does not start or displays an error 
  5569. message, you can stop the name of the folder from being sent to the program by 
  5570. doing the following: 
  5571.  
  5572.    1. Display the pop-up menu for the C-Kermit program object that was 
  5573.       referenced when you added the C-Kermit to the pop-up menu.  For example, 
  5574.       you might have dragged the "OS/2 C-Kermit (32-bit)" object from the 
  5575.       C-Kermit folder to the Menu page of the Settings notebook for the Desktop 
  5576.       folder.  If so, display the pop-up menu for "OS/2 C-Kermit (32-bit)" in 
  5577.       the C-Kermit folder. 
  5578.  
  5579.    2. Select Open. 
  5580.  
  5581.    3. Select Settings. 
  5582.  
  5583.    4. Select the Program tab. 
  5584.  
  5585.    5. Type the following in the Parameters field: 
  5586.  
  5587.             %
  5588.  
  5589.    6. Close the Settings notebook. 
  5590.  
  5591.  If you have updated the Dialing Directory or Services Directory to include 
  5592.  entries for each of the various systems you connect to you can further 
  5593.  automate the process of connecting by creating Program Objects for each 
  5594.  services directory or dialing directory entry.  To create the new object: 
  5595.  
  5596.    1. Display the pop-up menu for the "OS/2 C-Kermit (32-bit)" object in the 
  5597.       C-Kermit folder. 
  5598.  
  5599.    2. Select Copy 
  5600.  
  5601.    3. Edit the New name field to be the name of the service (e.g. xyzcorp.com). 
  5602.  
  5603.    4. Press Copy 
  5604.  
  5605.    5. Display the pop-up menu for the object you just created. 
  5606.  
  5607.    6. Select Settings 
  5608.  
  5609.    7. Type the appropriate string in the Parameters field.  For a Services 
  5610.       Directory entry type: 
  5611.  
  5612.             -C "access <service_name> [Password:], connect" %
  5613.  
  5614.       For a Dialing Directory entry type: 
  5615.  
  5616.             -C "dial <dialing_name>, connect" %
  5617.  
  5618.  When double clicking on a Services Directory object you would first be 
  5619.  prompted for the appropriate password prior to C-Kermit's connecting to the 
  5620.  designated service. 
  5621.  
  5622.  The Work Place Shell provides special parameters which may be passed to 
  5623.  filenames to C-Kermit.  These parameters are replaced with the filename at 
  5624.  startup.  They are used for drag and drop operations or file associations. 
  5625.  
  5626.  %*        Inserts the drive letter, path, and file name of a program into the 
  5627.            parameter list 
  5628.  
  5629.  %**P      Insert drive and path information without the last backslash (\). 
  5630.  
  5631.  %**D      Insert drive with ':' or UNC name. 
  5632.  
  5633.  %**N      Insert file name without extension. 
  5634.  
  5635.  %**F      Insert file name with extension. 
  5636.  
  5637.  %**E      Insert extension without leading dot. In HPFS, the extension always 
  5638.            comes after the last dot. 
  5639.  
  5640.  
  5641. ΓòÉΓòÉΓòÉ 6.2. Serial Port Performance ΓòÉΓòÉΓòÉ
  5642.  
  5643. C-Kermit's performance on serial connections - and the performance of any other 
  5644. OS/2 communication software program - can be improved significantly by using a 
  5645. 16550AFN communications port controller (UART) rather than an 8250, 16450, 
  5646. 16550 (no A), or other unbuffered UART.  Unbuffered UARTs interrupt the CPU 
  5647. once per character, whereas a buffered UART interrupts every 8-14 (or more) 
  5648. characters.  Measurements during C-Kermit file transfer on an otherwise 
  5649. unloaded i486/50 EISA system under OS/2 2.0 show approximately 10%-25% CPU 
  5650. usage with a buffered UART and 75%-100% using an unbuffered one.  And of 
  5651. course, as with all other OS/2 applications (and OS/2 itself), a faster CPU and 
  5652. more memory also help. 
  5653.  
  5654.  
  5655. ΓòÉΓòÉΓòÉ 6.3. OS/2 Devices, Files, and Shells ΓòÉΓòÉΓòÉ
  5656.  
  5657. If you refer to a disk drive that is not ready, or to a file on such a disk 
  5658. drive, the OS/2 critical error handler might pop up and require action from the 
  5659. keyboard.  This occurs during execution of commands by inferior processes, such 
  5660. as DIRECTORY, REMOTE DIRECTORY, DELETE, REMOTE DELETE, etc.  It should not 
  5661. occur in file transfer operations.  The "hard error box" will put a halt to 
  5662. unattended, scripted operations, and it stops the operation of the OS/2 
  5663. C-Kermit server if there is no human in attendance.  To work around: add the 
  5664. line " AUTOFAIL =YES" to CONFIG.SYS and reboot.  This eliminates the hard error 
  5665. box, but it applies system-wide, not just to C-Kermit.  (The equivalent of 
  5666. AUTOFAIL =YES can be set on a per-process basis and C-Kermit does so for itself 
  5667. but it can't do this for any inferior processes started by it.) 
  5668.  
  5669. If the PUSH command, and related commands, do not work for you, check the 
  5670. definition of your OS/2 COMSPEC environment variable, i.e. make sure it 
  5671. contains the fully-specified pathname of a valid OS/2 executable shell program 
  5672. (such as C:\OS2\CMD.EXE), and/or the named program is in your OS/2 PATH . 
  5673.  
  5674. C-Kermit works with JP Software's 4OS2.EXE and any other replacement Command 
  5675. Shell.  The directory containing the shell must be located in the PATH in order 
  5676. for the replacement shell to be called correctly. 
  5677.  
  5678.  
  5679. ΓòÉΓòÉΓòÉ 6.4. Running C-Kermit in the Background ΓòÉΓòÉΓòÉ
  5680.  
  5681. When Kermit is performing a long file transfer or lengthy script-based 
  5682. operation, you can have Kermit proceed with its work in the background while 
  5683. you work on something else in the foreground. 
  5684.  
  5685. Out of the box, OS/2 is tuned to favor foreground applications, which is fine 
  5686. if the background applications will not be performing time-critical operations 
  5687. or be expected to perform consistent screen updates.  But Kermit does both, and 
  5688. so we need a way to tell OS/2 to let it run at a reasonable speed even while we 
  5689. do other work in the foreground. 
  5690.  
  5691. There are two settings in the CONFIG.SYS file which affect how OS/2 determines 
  5692. the priority of applications which are competing for CPU time and File I/O 
  5693. Services: 
  5694.  
  5695.  PRIORITY  The default value is DYNAMIC, which gives a priority boost to all 
  5696.            foreground applications.  This effectively reduces the priority of 
  5697.            all background applications.  If you want your applications to have 
  5698.            equal access to the CPU regardless of the foreground/ background 
  5699.            status, set the value to ABSOLUTE. 
  5700.  
  5701.  PRIORITY_DISK_IO The default value, YES, gives the foreground process priority 
  5702.            service.  If your foreground process is performing a significant 
  5703.            amount of disk access (such as a database search, compile, a long 
  5704.            directory listing, or printing to the spooler) this will have a 
  5705.            severe impact on your background file transfers. Try setting this 
  5706.            this value to NO. 
  5707.  
  5708.  Other settings that also affect the performance of OS/2 are: 
  5709.  
  5710.  MAXWAIT   How long a process may starve before it gets a priority boost to 
  5711.            allow it to gain access to the CPU.  The standard value is 3 seconds 
  5712.            which is probably adequate for most users. 
  5713.  
  5714.  THREADS   How many threads may be created on a the system.  The default value 
  5715.            is 256.  The larger the number of threads the greater the overhead. 
  5716.            However, lowering this number might result in fewer programs being 
  5717.            able to run simultaneously. OS/2 applications, such as C-Kermit, 
  5718.            that need to do many things at once (e.g. watch the keyboard and 
  5719.            port and the mouse) use several threads.  C-Kermit uses anywhere 
  5720.            from two to eight threads depending on its current operating mode. 
  5721.            You can count the number of threads active in the system at a 
  5722.            particular time by using PSTAT . Pipe the output of PSTAT to a file 
  5723.            and count the number of lines in the "Process and Thread 
  5724.            Information" section.  Do it under a heavy load to determine how 
  5725.            many threads you really need. 
  5726.  
  5727.  TIMESLICE The minimum and maximum amounts of time that a thread may have 
  5728.            access to the CPU before yielding it to another thread. IBM 
  5729.            recommends a maximum value of 125 milliseconds when using 
  5730.            communications software (see OS/2 Command Reference) . Suggested 
  5731.            setting is "32,125". 
  5732.  
  5733.  SWAPPATH  The location and original size of your swapfile (SWAPPER.DAT).  It 
  5734.            is strongly recommended that you move your swapfile, if you have 
  5735.            multiple drives or partitions, to the root directory of the 
  5736.            most-used partition on the least-used drive. Then increase the 
  5737.            initial size value to 4096 larger than you have ever seen the 
  5738.            swapfile grow to.  After making this change to your CONFIG.SYS file, 
  5739.            shutdown and reboot.  If you have moved the SWAPPER.DAT file to a 
  5740.            new drive or directory, delete the file SWAPPER.DAT from the 
  5741.            \OS2\SYSTEM directory on your boot drive. Next, if you placed the 
  5742.            swapfile on a FAT partition, boot DOS and execute a Disk Optimizer 
  5743.            such as Norton's Speedisk.exe. Optimize the disk so that the 
  5744.            swapfile is the first file on the partition and is contiguous. 
  5745.  
  5746.  Disk caching is extremely important and can have a dramatic affect on the 
  5747.  performance of your computer.  Disk caches in OS/2 are allocated separately 
  5748.  for each type of file system: FAT , HPFS , and CDFS . When configuring your 
  5749.  cache do not set the cache size to be high if you have a small amount of RAM 
  5750.  (less than 16MB).  Be sure to turn on Lazy Writes. 
  5751.  
  5752.  If you never run DOS or Windows programs, set PROTECTONLY =YES.  This will 
  5753.  give OS/2 640k more physical memory to use for your OS/2 applications. 
  5754.  
  5755.  For additional information on all of the above topics read the OS/2 Command 
  5756.  Reference in the Information folder on your OS/2 Desktop. 
  5757.  
  5758.  Further information on tuning OS/2 can be found in: 
  5759.  
  5760.  "Stupid OS/2 Tricks" from Internet: m-woo@uiuc.edu 
  5761.  
  5762.  OS/2 WARP FAQ from Timothy Sipples, tsipple@vnet.ibm.com 
  5763.  
  5764.  These files and more are available from most OS/2 ftp sites, BBS, and online 
  5765.  services under a variety of names. 
  5766.  
  5767.  
  5768. ΓòÉΓòÉΓòÉ 6.5. Applications that Freeze ΓòÉΓòÉΓòÉ
  5769.  
  5770. There have been isolated reports of C-Kermit "freezing" on some systems.  This 
  5771. problem is not confined to C-Kermit, and has also been observed with a variety 
  5772. of other communications software packages: 
  5773.  
  5774.      The most likely cause for freezing would be an interrupt conflict.  Make 
  5775.       sure your serial ports, CD ROM drive / controller and/or SCSI adapter, 
  5776.       Soundblaster, ISA card, network adapter, etc, are all using different and 
  5777.       unique IRQs. 
  5778.  
  5779.      One user reported that the problem disappeared when he moved his serial 
  5780.       communication board farther away from his SCSI adapter board.  This might 
  5781.       have reduced electromagnetic interference, or altered the priority of the 
  5782.       adapters.  Sometimes, simply reseating the card can help. 
  5783.  
  5784.      Another user (different system) made the problem go away by rebooting the 
  5785.       PC, which had been up for many weeks. 
  5786.  
  5787.      The problem might be caused by a poorly built or configured system: noisy 
  5788.       bus, spurious interrupts, buggy internal modems, or buggy serial port 
  5789.       driver software.  For example, one user who noted that Kermit froze 
  5790.       whenever he told it to SET PORT COM2 also discovered that the same thing 
  5791.       would happen if he issued a MODE COM2 command at the CMD prompt, even 
  5792.       when this is done immediately after starting the system. 
  5793.  
  5794.      Finally, mysterious problems like this are often cleared up by installing 
  5795.       patches (CSDs) or new releases of the software involved (e.g. TCP/IP or 
  5796.       other DLLs, serial drivers, OS/2 itself, etc). 
  5797.  
  5798.  
  5799. ΓòÉΓòÉΓòÉ 7. Modems and Dialing ΓòÉΓòÉΓòÉ
  5800.  
  5801. First, a Frequently Asked Question (FAQ) and its answer: 
  5802.  
  5803.  Q:        How can I make Kermit keep redialing until the connection is made?
  5804.  
  5805.  
  5806.  A:        Just use the XDIAL macro, defined in the standard CKERMIT.INI file. 
  5807.            Example: 
  5808.  
  5809.                       C-Kermit> xdial 7654321
  5810.  
  5811.            XDIAL is just like the DIAL command, except it automatically redials 
  5812.            every 30 seconds until the connection is made or until it is 
  5813.            interrupted. You can interrupt it from the keyboard by typing Ctrl-C 
  5814.            (you might have to type two or three of them). 
  5815.  
  5816.  The list of modem types supported by C-Kermit is obtained by typing: 
  5817.  
  5818.   C-Kermit> set modem ?
  5819.  
  5820.  at the C-Kermit> prompt.  If you have a high-speed, error-correcting, 
  5821.  data-compressing modem, you should generally use the following settings: 
  5822.  
  5823.   set speed 57600 ; Or 38400, the highest supported by Kermit and the modem
  5824.   set dial speed-matching off  ; Use speed buffering.
  5825.   set dial error-correction on ; Enable error correction.
  5826.   set dial compression on      ; Enable data compression.
  5827.   set flow rts/cts             ; Use hardware flow control.
  5828.  
  5829.  Always use hardware flow control if it is available (some operating systems do 
  5830.  not support it).  If it is not, use Xon/Xoff ("software") flow control between 
  5831.  your computer and the modem, which means you must tell C-Kermit to "set flow 
  5832.  xon/xoff" and you must configure your modem for this too. 
  5833.  
  5834.  If you have a modem that is not directly supported by C-Kermit, you can define 
  5835.  a new modem type for it.  For example, suppose you have a Practical 
  5836.  Peripherals PM14400FXMT V.32bis/V.42/V.42bis/MNP modem and you want to take 
  5837.  full advantage of its features.  You can dial with this modem, taking 
  5838.  advantage of the support for Hayes-like modems that is already built into 
  5839.  C-Kermit, but substituting an initialization string particular to the PP14400: 
  5840.  
  5841.   set modem hayes              ; Use Hayes-like dialog
  5842.   set line <whatever>          ; Select the device your modem is on
  5843.   set speed 57600              ; Use high interface speed
  5844.   set dial speed-matching off  ; Lock the interface speed
  5845.   set flow rts/cts             ; Use hardware flow control
  5846.   set dial init ATQ0S2=43N1S37=11&&Q5S36=7S46=2S82=128\13
  5847.  
  5848.  where: 
  5849.  
  5850.  Q0        Result codes enabled 
  5851.  S2=43     Escape character is "+" 
  5852.  N1        Enable modulation negotiation 
  5853.  S37=11    Enable V.32.bis 
  5854.  &K3       Enable RTS/CTS 
  5855.  &Q5       Enable error correction 
  5856.  S36=7      and compression with 
  5857.  S46=2      automatic speed buffering 
  5858.  S82=128   Pass BREAK signals through 
  5859.  
  5860.  This can be turned into a dialing macro, PPDIAL, which you can use in place of 
  5861.  the DIAL command: 
  5862.  
  5863.   define PPDIAL -
  5864.     set modem hayes, -
  5865.     set port 1, -          ; Change this appropriately
  5866.     set speed 57600, -
  5867.     set dial speed-matching off, -
  5868.     set dial init ATQ0S2=43N1S37=11&K3&Q5S36=7S46=2S82=128\13, -
  5869.     dial \%1, -
  5870.     if success set flow rts/cts, -  ; (If your C-Kermit version supports it)
  5871.     else end 1
  5872.  
  5873.  If you put this definition into your CKERMOD.INI file, then it will always be 
  5874.  available for you to use, for example: 
  5875.  
  5876.   C-Kermit> ppdial 7654321
  5877.  
  5878.  And you can also use REDIAL in the normal way. 
  5879.  
  5880.  See your modem manual for details about initialization strings.  Most modern 
  5881.  modems should be set up as in the example above but, naturally, the specific 
  5882.  modem commands differ. 
  5883.  
  5884.  Here are some sample modem initialization strings that should obtain settings 
  5885.  equivalent to those made for the PP14400, for various other types of 
  5886.  high-speed, error-correcting, data-compressing modems that are not 
  5887.  specifically supported by Kermit's DIAL command.  The maximum speed is shown 
  5888.  after the modem name.  These are offered in a form suitable for use in the SET 
  5889.  DIAL INIT-STRING command (modem-command backslashes doubled, \13 at the end 
  5890.  for carriage return), but with no guarantees - see your modem manual for 
  5891.  explanations of the commands and for further details.  Each of these 
  5892.  initialization strings attempts to: 
  5893.  
  5894.      Start modulation negotation at V.32bis (14400bps), enabling fallback. 
  5895.      Fix the interface speed at 57600 or 38400 bps. 
  5896.      Enable error correction and compression, enabling fallback. 
  5897.      Allow BREAK signals to be passed through transparently. 
  5898.  
  5899.  AT&T DataPort 14400, 57600 bps: 
  5900.      AT Q0 X6 &C1 &D2 &Q0 S84=0 \\Q3 %B14400 S41=1 S78=0 \\N7 %C1 \\K5\13 
  5901.  
  5902.  Boca 14.4 Faxmodem, 57600 bps: 
  5903.      AT Q0W1&D2X4 S95=47 F10 S37=11 N1 &K3 S82=128 &Q5 S36=7 S46=138 \\N3 
  5904.      S48=7\13 
  5905.  
  5906.  Hayes Ultra 144, 38400 bps: 
  5907.      AT Q0W1X4 S87=28 &D2 S95=46 S37=11 N1 &K1 &K3 &Q5 S36=7 S38=1 S46=2 
  5908.      S48=7\13 
  5909.  
  5910.  Multitech MT1432, 57600 bps: 
  5911.      AT Q0 &Q1 X4 $SB57600 $MB14400 &E4 %E1 &E1 &E15 $BA0\13 
  5912.  
  5913.  Practical Peripherals 14400FXMT, 57600 bps: 
  5914.      AT Q0 W1 S95=47 &D2 X4 S2=43 N1 S37=11 &K3 &Q5 S36=7 S46=2 S82=128\13 
  5915.  
  5916.  USR Sportster or Courier, 57600 bps: 
  5917.      AT Q0 &S0 X4 &A3 &D2 &B1 &H1 &R2 &N0 &K1 &M4 &Y3\13 
  5918.  
  5919.  Zoom Telephonics 14400, 57600 bps: 
  5920.      AT Q0 W1 &D2 S95=47 X4 S37=11 &K3 S82=128 &Q5 S36=7 S46=138 S38=1\13 
  5921.  
  5922.  Zyxel U-1496E, 57600 bps: 
  5923.      AT Q0 L1 S11=55 S0=0 V1 E1 &D2 X5 &N0 N1 &H3 &Y1 &K4\13 
  5924.  
  5925.  CAUTION:  Reportedly, these strings might be too long for some modems.  If 
  5926.  that is the case with yours, you can do one of the following: 
  5927.  
  5928.      Shorten the string by removing spaces and/or commands that are not 
  5929.       necessary because they correspond to your modem's normal settings. 
  5930.  
  5931.      Change your dialing macro to simply OUTPUT these commands in small groups 
  5932.       before issuing the DIAL command. 
  5933.  
  5934.  NOTE: You can find copies of the strings in the sample CKERMOD.INI file that 
  5935.  is distributed with C-Kermit 5A(191) or later. 
  5936.  
  5937.  
  5938. ΓòÉΓòÉΓòÉ 7.1. Dialing Hints and Tips ΓòÉΓòÉΓòÉ
  5939.  
  5940. Remember:  You can't CONNECT to a modem and type the modem's dialing command 
  5941. (like "ATDT7654321") manually, unless you first tell C-Kermit to: 
  5942.  
  5943. SET CARRIER OFF 
  5944.  
  5945. This is because the CONNECT command requires the modem's Carrier Detect (CD) 
  5946. signal to be on, but the CD signal doesn't come on until after dialing is 
  5947. complete.  This requirement is what allows C-Kermit to pop back to its prompt 
  5948. automatically when the connection is hung up.  See the description of SET 
  5949. CARRIER in Using C-Kermit. 
  5950.  
  5951. Similarly, if your dialed connection drops when CARRIER is set to AUTO or ON, 
  5952. you can't CONNECT back to the (now disconnected) screen to see what might have 
  5953. happened unless you first SET CARRIER OFF. 
  5954.  
  5955. Automatic redialing:  The XDIAL macro, defined in the standard CKERMIT.INI file 
  5956. for version 5A(191), is like the DIAL command, but keeps redialing every thirty 
  5957. seconds until it gets an answer, or until you interrupt it by typing Ctrl-C 
  5958. (several Ctrl-C's might be needed). 
  5959.  
  5960. define keep_on_dialing dial \%1, while failure { sleep 30, redial }
  5961.  
  5962. Don't SET FLOW RTS/CTS if your modem is turned off, or if it is not presenting 
  5963. the CTS signal.  Otherwise, the serial device driver might get stuck waiting 
  5964. for this signal to appear.  When dialing, it is better to give the SET FLOW 
  5965. RTS/CTS command after the DIAL command than before it. 
  5966.  
  5967. Here are a few points to clarify the purpose of SET DIAL SPEED-MATCHING: 
  5968.  
  5969.    1. This command does not do anything at all to the modem.  Rather, it is 
  5970.       used to inform C-Kermit about the modem's configuration: whether the 
  5971.       modem's interface speed is "fixed", or it changes its interface speed 
  5972.       when a connection is made.  In the latter case, C-Kermit changes its own 
  5973.       speed in response to the speed given in the modem's CONNECT message.  By 
  5974.       default, SPEED-MATCHING is OFF, so Kermit does not attempt to change its 
  5975.       speed. If your modem changes its interface speed to match the negotiated 
  5976.       connection speed, you must SET DIAL SPEED-MATCHING ON. 
  5977.  
  5978.    2. When DIAL SPEED-MATCHING is ON: 
  5979.  
  5980.         a. Your modem must be configured to report its *interface* speed in the 
  5981.            CONNECT message, rather than the connection (modulation) speed. 
  5982.  
  5983.         b. Your computer (and C-Kermit) must support all connection speeds that 
  5984.            might be reported by your modem.  SET SPEED ? will give you a list 
  5985.            of the speeds that your version of C-Kermit knows about. 
  5986.  
  5987.    3. If conditions (a) and (b) cannot be satisfied, then you must: 
  5988.  
  5989.         a. Configure your modem to lock its interface speed 
  5990.  
  5991.         b. Tell C-Kermit to SET DIAL SPEED-MATCHING OFF 
  5992.  
  5993.  If you have a high-speed, error-correcting, data-compressing, speed-buffering 
  5994.  modem, you should always SET DIAL SPEED-MATCHING OFF, and you should fix the 
  5995.  modem's interface speed as high as possible, preferably four times higher than 
  5996.  its maximum connection (modulation) speed to allow compression to work at full 
  5997.  advantage.  In this type of setup, you must also have an effective means of 
  5998.  flow control enabled between C-Kermit and the modem, preferably hardware 
  5999.  (RTS/CTS) flow control. 
  6000.  
  6001.  C-Kermit knows about a large number of modems, depending on how it was built 
  6002.  (type "set modem ?" and "show features" for further info).  This knowledge is 
  6003.  imbedded in the SET MODEM and DIAL commands.  If you are having trouble 
  6004.  dialing your modem, SET DIAL DISPLAY ON to watch the dialing interactions 
  6005.  between C-Kermit and your modem.  Consult pages 65-66 of Using C-Kermit for 
  6006.  modem-dialing troubleshooting instructions. 
  6007.  
  6008.  If it takes your call longer to be completed than the timeout interval that 
  6009.  C-Kermit calculates, you can use the SET DIAL TIMEOUT command to override 
  6010.  C-Kermit's value.  But beware: the modem has its own timeout for completing 
  6011.  the call.  If it is a Hayes-like modem, C-Kermit adjusts the modem's value too 
  6012.  by setting register S7.  But the maximum value for S7 might be smaller than 
  6013.  the time you need!  In that case, C-Kermit sets S7 to 0, 255, or other 
  6014.  (modem-specific) value to signify "no timeout". 
  6015.  
  6016.  WARNING:  Certain modems might have a maximum dial timeout shorter than what 
  6017.  Kermit expects it to be.  If Kermit attempts to set register S7 to a value 
  6018.  higher than your modem's maximum, the modem will say "ERROR" and you will get 
  6019.  a "Failure to initialize modem" error.  In that case, use SET DIAL TIMEOUT to 
  6020.  override C-Kermit's calculation of the timeout value with the highest value 
  6021.  that is legal for your modem, e.g. 60. 
  6022.  
  6023.  How to DIAL from a TCP/IP reverse terminal server (modem server): 
  6024.  
  6025.    1. (only if neccessary) SET TELNET ECHO REMOTE 
  6026.    2. SET HOST <terminal-server-ip-name-or-address> [ <port> ] 
  6027.    3. SET MODEM <modem-type> 
  6028.    4. (only if necessary) SET DIAL HANGUP OFF 
  6029.    5. DIAL <phone-number> 
  6030.  
  6031.  The order is important. 
  6032.  
  6033.  Although various modem-dialing strings are configurable, the DIAL MODEM-HANGUP 
  6034.  string is not.  For Hayes and Hayes-like modems it is ATQ0H0; the Q0 is to 
  6035.  ensure that a result code is produced.  In case the Q0 interferes with your 
  6036.  normal setup (for example, if you keep your modems set to Q2), and dropping 
  6037.  the connection does not restore the normal connection, you can define Kermit's 
  6038.  ON_EXIT macro to send the appropriate modem configuration commands when Kermit 
  6039.  exits, for example: 
  6040.  
  6041.   define on_exit if > \v(local) 0 output ATQ2\13
  6042.  
  6043.  The SET DIAL KERMIT-SPOOF command works only for Telebit and US Robotics modem 
  6044.  types; it is OFF by default.  You may wish to experiment with large packets 
  6045.  (1K or greater) and various window sizes with spoofing disabled in the modem. 
  6046.  In most situations the transfer rates achieved by Kermit with sliding windows 
  6047.  and long packets are better than with protocol spoofing turned on.  Also, 
  6048.  attribute (A) packets are not passed by current Telebit modems with spoofing 
  6049.  enabled so if they are desired spoofing must be turned off. 
  6050.  
  6051.  If C-Kermit's dialing methods are insufficient for your purposes, you can 
  6052.  write a C-Kermit script program to do the dialing.  Or you can use (or write) 
  6053.  another program to accomplish the dialing, and then run C-Kermit "underneath" 
  6054.  your dialing program by giving it the open file descriptor: 
  6055.  
  6056.   kermit -l n -m unknown
  6057.  
  6058.  where n is the numeric file descriptor. 
  6059.  
  6060.  Note:  When you give a SET DIAL DIRECTORY command, C-Kermit keeps your dial 
  6061.  directory file open until you give another SET DIAL DIRECTORY command, or 
  6062.  until you EXIT.  So, for example, you can't edit the dialing directory while 
  6063.  you have it open.  If you want to edit the dialing directory from within 
  6064.  Kermit, you can close it by giving a SET DIAL DIRECTORY command with no file 
  6065.  name.  Then you can open it again with SET DIAL DIRECTORY filename. 
  6066.  
  6067.  
  6068. ΓòÉΓòÉΓòÉ 7.2. Hayes and Compatible Modems ΓòÉΓòÉΓòÉ
  6069.  
  6070. C-Kermit should work correctly with Hayes and other modems that use the AT 
  6071. command set.  These include Hayes 1200, Hayes 2400, and Hayes 9600 bps modems, 
  6072. compatibles, as well as Telebit and HST modems.  See the next section for 
  6073. Telebit information.  C-Kermit sends AT commands to the modem and then reads 
  6074. the modem's response.  The software is designed to work whether the modem is 
  6075. configured to echo its commands (E1) or not (E0), and whether it replies with 
  6076. numeric (V0) or word (V1) result codes.  C-Kermit does not change the echoing 
  6077. state or result code mode of the modem.  However, C-Kermit issues the Q0 
  6078. command to the modem to ensure that it does produce result codes. C-Kermit 
  6079. assumes the modem's Command Line Terminator (S3) is 13 (carriage return).  If 
  6080. it isn't, C-Kermit's dialog with the modem probably won't work correctly. 
  6081.  
  6082.  
  6083. ΓòÉΓòÉΓòÉ 7.3. Telebit Modems ΓòÉΓòÉΓòÉ
  6084.  
  6085. There are numerous Telebit modem models, with differing capabilities and 
  6086. features.  C-Kermit tries to support them all in a model-independent way. To 
  6087. use a Telebit modem, any model, SET MODEM as follows: 
  6088.  
  6089.  TELEBIT 
  6090.      Dial and attempt to connect using the highest protocol appropriate to the 
  6091.      interface speed between the computer and the modem, and fall back 
  6092.      automatically to the highest protocol and speed supported by the answering 
  6093.      modem.  For example, if your interface speed is 19200 bps and you have a 
  6094.      PEP-capable Telebit, it will start in PEP mode, fall back to one of the 
  6095.      2400-bps standards, then one of the 1200 bps standards, etc, depending on 
  6096.      its configuration (see your Telebit manual). 
  6097.  
  6098.  PEP-TELEBIT 
  6099.      Dial in PEP mode, and connect only if the remote modem answers in PEP 
  6100.      mode. Does not work with Telebit models that do not support PEP.  See 
  6101.      Table III. 
  6102.  
  6103.  V32-TELEBIT 
  6104.      Dial in V.32 mode (9600 bps), fall back from there.  Works only with 
  6105.      Telebit models that support V.32; see Table III.  NOTE: V.32 calls are 
  6106.      supposed to work no matter what your interface speed is, but it has been 
  6107.      observed that when calling certain non-Telebit V.32 modems, the connection 
  6108.      is not made successfully unless C-Kermit's interface speed to the Telebit 
  6109.      is 9600. 
  6110.  
  6111.  V42-TELEBIT 
  6112.      Enable V.42 error correction, allowing fallback to MNP, and from there to 
  6113.      direct (no error correction).  NOTE: Fallback to MNP from V.42 is allowed 
  6114.      even if DIAL MNP-ENABLE is OFF.  Works only with Telebit models supporting 
  6115.      V.42 error control.  See Table III. 
  6116.  
  6117.  SLOW-TELEBIT 
  6118.      Dial at 2400 bps (V.22bis), fall back from there. 
  6119.  
  6120.  Before attempting to use Telebits at high speeds, there is one problem you 
  6121.  should be aware of: Most Telebit models do not "autobaud" at speeds higher 
  6122.  than 19200 or 38400.  If you want to make a high-speed call on such a modem, 
  6123.  you must access it first at a lower speed, then give it a command to change to 
  6124.  a higher speed, and then change Kermit's speed to match.  For example, on the 
  6125.  Telebit T3000: 
  6126.  
  6127.   C-Kermit> set speed 19200
  6128.   C-Kermit> connect
  6129.   AT                           (make sure it can read you)
  6130.   OK                           (it can)
  6131.   ATS51=7                      (change it to 57600 bps)
  6132.   OK                           (it says OK, then changes its speed)
  6133.   Alt-x                        (escape back to Kermit)
  6134.   C-Kermit> set speed 57600    (set Kermit to agree)
  6135.  
  6136.  Of course, you can automate this process using a script program.  Or if you 
  6137.  always want to dial out at 57600, you can save this setting in the modem, and 
  6138.  then it will always use this speed (and won't autobaud any more). 
  6139.  
  6140.  Telebit modems come in many models that differ not only as to features but 
  6141.  also which commands control which features.  The features, commands, and 
  6142.  acceptable S-register values (and their meanings) can vary not only among 
  6143.  models, but even among different ROM versions on the same model.  Rather than 
  6144.  have dozens of separate SET MODEM TELEBIT-xxx commands, C-Kermit queries the 
  6145.  modem for its model number with an ATI command, and then adjusts its modem 
  6146.  commands accordingly.  Responses to the ATI command are shown in Table I. 
  6147.  
  6148.   -------------------------------------------------------------------------
  6149.   Table I: Telebit Modem ATI Command Responses
  6150.   -------------------------------------------------------------------------
  6151.   ATI  Model Numbers        Examples
  6152.   ---  -------------        --------
  6153.   123                       Telebit in "total Hayes-1200" emulation mode
  6154.   960                       Telebit in Conventional Command (Hayes) mode
  6155.   961  RA12C                IBM PC internal original Trailblazer
  6156.   962  RA12E                External original Trailblazer, DCA Fastlink,
  6157.                               or Racal-Milgo RM1822
  6158.   963  RM12C                Rackmount original Trailblazer
  6159.   964  T18PC                IBM PC internal Trailblazer-Plus (TB+)
  6160.   965  T18SA, T2SAA, T2SAS  External TB+, T1600, T2000, T3000, WB, and later
  6161.                               or Ven-Tel Pathfinder EC18K (see below)
  6162.   966  T18RMM               Rackmount TB+
  6163.   967  T2MC                 IBM PS/2 internal TB+
  6164.   968  T1000                External T1000
  6165.   969  ?                    QBlazer
  6166.   971  T25SA                External T2500 or T1500 (see below)
  6167.   972  T25RM                Rackmount T2500
  6168.   -------------------------------------------------------------------------
  6169.  
  6170.  Certain incompatible models show the same response to ATI.  The ATI3 command 
  6171.  is used to differentiate among them, as shown in Table II. 
  6172.  
  6173.   ----------------------------------------------------------------------
  6174.   Table II: Telebit Modem ATI3 Command Responses
  6175.   ----------------------------------------------------------------------
  6176.   ATI       If ATI3 Response
  6177.   Response  Contains         Telebit Model Is
  6178.   --------  ---------------  ----------------
  6179.    965      "T1600"          T1600
  6180.    965      "T3000"          T3000
  6181.    965      "World"          WorldBlazer
  6182.    965      "Version B"      TrailBlazer-Plus or T2000 external version 1
  6183.    965      "TBSA"           TrailBlazer-Plus or T2000 external version 2
  6184.    965      "TBRM"           TrailBlazer-Plus or T2000 rackmount version 2
  6185.    965      "DC"             Ven-Tel Pathfinder EC18K (= TB+ version 1)
  6186.    971      "T1500"          T1500
  6187.    971      (anything else)  T2500
  6188.   ------------------------------------------------------------------------
  6189.  
  6190.  The features of the various models and the commands used by Kermit to control 
  6191.  them are shown in Table III.  The commands in the PEP column are used to force 
  6192.  PEP and allow compression (SET MODEM PEP-TELEBIT).  The commands in the V.32 
  6193.  column are used with SET MODEM V32-TELEBIT.  The commands in the V.42 column 
  6194.  are used with SET MODEM V42-TELEBIT.  The commands in the MNP column are used 
  6195.  if SET DIAL MNP-ENABLE is ON and the modem type is TELEBIT, PEP-TELEBIT, or 
  6196.  V32-TELEBIT, SLOW-TELEBIT, but not V42-TELEBIT; if SET MNP-ENABLE is OFF, the 
  6197.  S-registers in the MNP column are set to 0.  The Pass BREAK column shows the 
  6198.  commands used to ensure that the modem passes the BREAK signal through (rather 
  6199.  than treating it as an "escape-to-command-mode" signal). 
  6200.  
  6201.   -------------------------------------------------------------------
  6202.   Table III.  Telebit Modem Features and Commands
  6203.   -----+-------------------+-----+------+------+-----------+---------
  6204.        |                   |     |      |      |           |Kermit
  6205.   Model|     PEP           |V.32 | V.42 |MNP   |Pass BREAK | Spoof
  6206.   -----+-------------------+-----+------+------+-----------+---------
  6207.   TB   |S50=255 S110=1     | No  | No   |S95=2 |   S54=3   |PEP only
  6208.   TB+  |S50=255 S110=1     | No  | **   |S95=2 |   S54=3   |PEP only
  6209.   T2000|S50=255 S110=1     | No  | **   |S95=2 |   S54=3   |PEP only
  6210.   T1000|S50=255 S110=1     | No  | No   |S95=2 |   S54=3   |PEP only
  6211.   T2500|S50=255 S110=1     |S50=6| No   |S95=2 |   S54=3   |PEP only
  6212.   T1500|     No            |S50=6| **   |S95=2 |   S54=3   |PEP,V.32
  6213.   -----+-------------------+-----+------+------+-----------+---------
  6214.   T1600|     No            |S50=6|S180=2|S180=3|S61=0 S63=0|PEP,V.32
  6215.   T3000|     No            |S50=6|S180=2|S180=3|S61=0 S63=0|PEP,V.32
  6216.   QB   |     No            |S50=6|S180=2|S180=3|S61=0 S63=0|No
  6217.   WB   |S50=255S190=1S191=7|S50=6|S180=2|S180=3|S61=0 S63=0|PEP,V.32
  6218.   -----+-------------------+-----+------+------+-----------+---------
  6219.   **  For V.42 error control: "S50=0 S95=2 S97=1 S98=3 S106=1".
  6220.  
  6221.  All models but the QBlazer support Kermit spoof (but see below). 
  6222.  
  6223.  Group I (old command set): 
  6224.  
  6225.       TB = Original TrailBlazer (PEP, MNP, V.22bis, V.22, Bell 212A, 103)
  6226.      TB+ = TrailBlazer-Plus = TrailBlazer + V.42 (but only in new ROMs)
  6227.    T1000 = TrailBlazer-Plus, speed <= 9600, no PEP compression
  6228.    T2000 = TrailBlazer-Plus + SDLC (not used by Kermit, so same as TB+)
  6229.    T2500 = TrailBlazer-Plus + V.32 (9600 bps)
  6230.    T1500 = T2500 minus PEP
  6231.  
  6232.  Group II (new command set): 
  6233.  
  6234.          T1600 = V.32, MNP, V.22bis, V.22, V.23, Bell 212A & 103
  6235.   QB = QBlazer = T1600 without Kermit spoof and minus some other options
  6236.          T3000 = T1600 + V.32bis (14400 bps)
  6237.    WorldBlazer = T3000 + PEP + LZ and V.42bis compression +76800 +115200 bps
  6238.  
  6239.  C-Kermit does not attempt to control whether the modem changes its interface 
  6240.  speed to match the connection speed -- that is up to you; you can configure 
  6241.  the modem any way you prefer (using S51 or, to some extent on new-style modems 
  6242.  S180 and S181), but make sure that the modem's configuration agrees with 
  6243.  C-Kermit's DIAL SPEED-MATCHING setting.  When DIAL SPEED-MATCHING is ON (the 
  6244.  default), C-Kermit changes its interface speed automatically according to the 
  6245.  speed reported in the modem's CONNECT message; when it is OFF, C-Kermit does 
  6246.  not change speed. 
  6247.  
  6248.  Most Telebit modems do not autobaud at speeds above 9600 or 19200 bps unless 
  6249.  specially configured to do so, and even then most (maybe all) models will not 
  6250.  autobaud at all at 57600 bps.  Thus, to make a high-speed modem call with a 
  6251.  Telebit, follow these steps: 
  6252.  
  6253.   set modem telebit
  6254.   set port com1 ; or whatever
  6255.   set speed 19200
  6256.   connect
  6257.  
  6258.  Now type AT and carriage return to make sure you get an OK result.  Then type: 
  6259.  
  6260.   ats51=7
  6261.  
  6262.  and then carriage return.  This changes the Telebit's interface speed to 57600 
  6263.  (use ats51=6 if your modem's or computer's top speed is 38400). Now escape 
  6264.  back to Kermit and give these commands: 
  6265.  
  6266.   set speed 57600 ; or 38400
  6267.   set dial speed-matching off
  6268.   set dial mnp on
  6269.  
  6270.  and now you can place a high-speed, error-correcting, data-compressing call. 
  6271.  
  6272.  The DIAL KERMIT-SPOOF command is only effective for the Telebit models that 
  6273.  supply a Kermit spoof, that is, all but the QBlazer.  If the Telebit model is 
  6274.  TrailBlazer, TrailBlazer-Plus, T1000, T2000, or T2500, PEP mode is forced even 
  6275.  if your SET MODEM command specified a Telebit modem type other than 
  6276.  PEP-TELEBIT, because the Kermit spoof only works in PEP mode on those models. 
  6277.  On the other models supporting the Kermit spoof, it works on both PEP 
  6278.  connections and V.32 MNP (but not V.42) connections.  Thus, you might also 
  6279.  have to SET MODEM MNP-ENABLE ON in order to get the Kermit Spoof to work on 
  6280.  these newer models when making a V.32 connection. 
  6281.  
  6282.  SHOW DIAL does not show the complete initialization string for Telebit modems. 
  6283.  Telebit modems are initialized in several steps, and the initialization 
  6284.  command depends upon your current communication parameters, which model of 
  6285.  Telebit modem you have (which C-Kermit learns during the modem initialization 
  6286.  process), and other factors.  If you use the SET DIAL INIT-STRING command to 
  6287.  change the initialization string, this disables the multistep process and uses 
  6288.  only the string that you have specified. 
  6289.  
  6290.  If you want to use the built-in multi-step process, but you also want to 
  6291.  override one or more of the settings that are done in this process, or add 
  6292.  additional settings, you can use SET DIAL DIAL-COMMAND to add commands to the 
  6293.  dial string (which is normally ATD%s\13), for example "SET DIAL DIAL-COMMAND 
  6294.  AT&C1&D2S181=1DT%s\13". 
  6295.  
  6296.  
  6297. ΓòÉΓòÉΓòÉ 7.4. Dialing and Flow Control ΓòÉΓòÉΓòÉ
  6298.  
  6299. If you have SET FLOW to any of the hardware options supported by your version 
  6300. of C-Kermit, such as RTS/CTS, and if C-Kermit knows how to set the flow control 
  6301. on your modem, it will do this as part of the DIAL command. 
  6302.  
  6303. Caution:  If C-Kermit's FLOW-CONTROL setting is Xon/Xoff or other type of 
  6304. software flow control, C-Kermit will not attempt to change your modem's flow 
  6305. control setting, since software flow control is most commonly used end-to-end. 
  6306. One way to engage Xon/Xoff flow control directly between C-Kermit and the local 
  6307. modem is to change your modem's DIAL INIT-STRING to do it. 
  6308.  
  6309. Hardware flow control options are presently handled only for Telebit modems. On 
  6310. other modem types, you can set the flow control outside of Kermit, or change 
  6311. Kermit's DIAL INIT-STRING. 
  6312.  
  6313.  
  6314. ΓòÉΓòÉΓòÉ 7.5. TIES Modems ΓòÉΓòÉΓòÉ
  6315.  
  6316. A "TIES" (Time-Independent Escape Sequence) modem does not require any guard 
  6317. time around its escape sequence.  The following text: 
  6318.  
  6319. +++ATH0
  6320.  
  6321. if sent through a TIES modem, for example because you were uploading this file 
  6322. through it, could pop the modem back into command mode and make it hang up the 
  6323. connection.  Newer versions of the Telebit T1600 and T3000 (version LA3.01E 
  6324. firmware and later), and all WorldBlazers, use TIES. 
  6325.  
  6326. Although the probability of "+++" appearing in a Kermit packet is markedly 
  6327. lower than with most other protocols (see the File Transfer section below), it 
  6328. can still happen under certain circumstances.  It can also happen when using 
  6329. C-Kermit's TRANSMIT command.  If you are using a Telebit TIES modem, you can 
  6330. change the modem's escape sequence to an otherwise little-used control 
  6331. character such as Ctrl-_ (Control-Underscore): 
  6332.  
  6333. AT S2=31
  6334.  
  6335. A sequence of three consecutive Ctrl-_ characters will not appear in a Kermit 
  6336. packet unless you go to extraordinary lengths to defeat more than a few of 
  6337. Kermit's built-in safety mechanisms.  And if you do this, then you should also 
  6338. turn off the modem's escape-sequence recognition altogether: 
  6339.  
  6340. AT S48=0 S2=255
  6341.  
  6342. But when escape sequence recognition is turned off, "modem hangup" 
  6343. (<pause>+++<pause>ATH0<CR>) will not work, so you should also be sure to SET 
  6344. DIAL MODEM-HANGUP OFF. 
  6345.  
  6346.  
  6347. ΓòÉΓòÉΓòÉ 8. OS/2 C-Kermit Wish List ΓòÉΓòÉΓòÉ
  6348.  
  6349. Items marked with (*) require conversion of C-Kermit from a VIO to a PM 
  6350. application. 
  6351.  
  6352.      OS/2-style graphical user interface (*). 
  6353.      True, rather than simulated, double-width, double-height lines (*). 
  6354.      True, rather than simulated, underline and blink attributes (*). 
  6355.      Tektronix and other graphics terminal emulations (*). 
  6356.      Ability to execute VX-REXX programs (*). 
  6357.      LK250/LK450 keyboard support. 
  6358.      MS-DOS Kermit compatible keyboard scan codes. 
  6359.      Improved VT-220 emulation, including character set designation and 
  6360.       invocation via ISO 4873 and 2022 rules. 
  6361.      Support for non-IBM-compatible TCP/IP packages (e.g. Novell LWOS/2). 
  6362.      Ability to run in remote mode on both serial (OS2YOU) and network 
  6363.       (TELNET) connections. 
  6364.      3270 terminal emulation 
  6365.      APPC/CPI-C Network support 
  6366.      A realistic DEC VTxxx font (*) 
  6367.  
  6368.  
  6369. ΓòÉΓòÉΓòÉ 9. Further Information ΓòÉΓòÉΓòÉ
  6370.  
  6371. Additional information is available from a variety of sources: 
  6372.  
  6373.  Kermit News News and articles about Kermit software and protocol are published 
  6374.            periodically in our journal, Kermit News.  Subscriptions are free of 
  6375.            charge.  To subscribe, send your complete postal address by email to 
  6376.            knews@columbia.edu, or contact Columbia University. 
  6377.  
  6378.  USENET Newsgroups The Kermit Development Group maintains an active presence in 
  6379.            the USENET community.  As of this writing there are two newsgroups 
  6380.            dedicated to Kermit software and protocol: 
  6381.  
  6382.                comp.protocols.kermit.announce (moderated) 
  6383.                comp.protocols.kermit.misc (unmoderated) 
  6384.  
  6385.            The following OS/2-specific groups are also visited periodically: 
  6386.  
  6387.                comp.os.os2.announce 
  6388.                comp.os.os2.apps 
  6389.                comp.os.os2.misc 
  6390.                comp.os.os2.networking.tcp-ip 
  6391.  
  6392.  World Wide Web The Kermit Development Group maintains an active Home Page on 
  6393.            the World Wide Web which to provide up-to-date product information. 
  6394.            You may access the Kermit Home Page at URL 
  6395.            http://www.columbia.edu/kermit/ with IBM OS/2 WARP's WebExplorer via 
  6396.            the Internet Access Kit (SLIP or PPP) , or via a LAN Client or 
  6397.            TCP/IP 2.0 connection, or any other Web browser. 
  6398.  
  6399.  Electronic Mail You may send inquiries by e-mail to the Internet address 
  6400.            kermit@columbia.edu. 
  6401.  
  6402.  FTP       Kermit communication software for hundreds of different platforms is 
  6403.            available via Internet anonymous FTP from kermit.columbia.edu in the 
  6404.            /kermit directory hierarchy.  The latest distribution of OS/2 
  6405.            C-Kermit is found in the /kermit/archives directory with a file name 
  6406.            ckoxxx.zip, where xxx is the current edit number, such as 
  6407.            cko191.zip.  Transfer it in binary mode, unzip it, then install it. 
  6408.            If you obtain Kermit software in this way, please also purchase the 
  6409.            appropriate documentation. 
  6410.  
  6411.  
  6412. ΓòÉΓòÉΓòÉ 10. Technical Support ΓòÉΓòÉΓòÉ
  6413.  
  6414. Technical support for Kermit software is available from Columbia University on 
  6415. a best-effort basis. Our tech support resources are limited, so please do your 
  6416. best to help out by following these steps: 
  6417.  
  6418.    1. First look for the answer to your question in the book Using C-Kermit. 
  6419.       Most questions of a general nature are answered there.  Use the index, 
  6420.       table of contents, command reference, and glossary for help in locating 
  6421.       the appropriate material.  If you do not have the book, please purchase 
  6422.       it.  Please do not request tech support from Columbia University without 
  6423.       having first consulted this book. 
  6424.  
  6425.    2. Look in CKERMIT.INF (this file), which contains lots of OS/2-specific 
  6426.       information, supplemental to what is in Using C-Kermit.  Use the VIEW 
  6427.       program (or C-Kermit's UPDATES command) to access this file, which is 
  6428.       fully indexed and searchable. 
  6429.  
  6430.    3. If you are using Kermit software within a company or institution that 
  6431.       recommends and supports it, contact your local support staff for help. 
  6432.  
  6433.    4. If you have USENET access, look in or post your question to the 
  6434.       appropriate newsgroup, such as comp.protocols.kermit or comp.os.os2.apps. 
  6435.       Questions answered in this type of forum serve a broad audience rather 
  6436.       than just one person. 
  6437.  
  6438.    5. If you have FTP access, retrieve the Kermit "FAQ" (Frequently Asked 
  6439.       Questions file) via anonymous FTP to kermit.columbia.edu, file 
  6440.       kermit/faq.txt. 
  6441.  
  6442.    6. If you still need help, you may send an inquiry by e-mail to 
  6443.       kermit@columbia.edu. 
  6444.  
  6445.    7. If you still need help and you don't have email access to us, then, you 
  6446.       may contact us directly by phone, fax, or post. 
  6447.  
  6448.  
  6449. ΓòÉΓòÉΓòÉ 11. Contact Information ΓòÉΓòÉΓòÉ
  6450.  
  6451. Contact information: 
  6452.  
  6453.         Kermit Development and Distribution 
  6454.         Columbia University Academic Information Systems 
  6455.         612 West 115th Street 
  6456.         New York, NY  10025  USA 
  6457.         Telephone: (USA) +1 212 854-3703 (business) or -5126 (tech support) 
  6458.         Fax: +1 212 663-8202 or +1 212 662-6442 
  6459.         Email: kermit@columbia.edu 
  6460.         Web: http://www.columbia.edu/kermit/ 
  6461.  
  6462.  Telephone hours are 9:00am to 4:00pm United States Eastern Time, Monday 
  6463.  through Friday; closed Saturdays, Sundays, and Holidays. 
  6464.  
  6465.  
  6466. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  6467.  
  6468. Using MS-DOS Kermit, by Christine M. Gianone, Digital Press (1992), 1-55558-082-3.
  6469.  
  6470.  
  6471. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  6472.  
  6473. Kermit, A File Transfer Protocol, by Frank da Cruz, Digital Press (1987), ISBN