home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / cko190.zip / CKERMIT.INF (.txt) < prev    next >
OS/2 Help File  |  1994-11-16  |  191KB  |  5,147 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4.  
  5. ΓòÉΓòÉΓòÉ 1.1. About This File ΓòÉΓòÉΓòÉ
  6.  
  7.  
  8. OS/2 C-Kermit is a full-function native communication software package for 
  9. OS/2, offering terminal emulation, file transfer, script programming, and 
  10. international character set conversion on both serial and network connections. 
  11. C-Kermit software is also available for UNIX, VMS, AOS/VS, Stratus VOS, and 
  12. numerous other operating systems.  Other Kermit software is also available from 
  13. Columbia University for hundreds of other computers and operating systems 
  14. ranging from the smallest microcomputers to the largest mainframes and 
  15. supercomputers. 
  16.  
  17. This file describes the changes made to OS/2 C-Kermit since version 5A(188) was 
  18. released and the first edition of the book Using C-Kermit was published to 
  19. accompany it in early 1993.  Also incorporated are numerous hints  & tips and 
  20. questions & answers arising from years of help-desk experience.  This file 
  21. applies to version 5A(190) of OS/2 C-Kermit, released October 1994. 
  22.  
  23. This file was written by: 
  24.  
  25.    Frank da Cruz and Christine M. Gianone, Columbia University, New York. 
  26.    Kai Uwe Rommel, ARS Computer and Consulting GmbH, M╨ænchen, Germany. 
  27.    Jeffrey Altman, Altmania Productions, Great Neck, New York. 
  28.  
  29.  
  30. ΓòÉΓòÉΓòÉ 1.2. Copyright Notice ΓòÉΓòÉΓòÉ
  31.  
  32. Copyright (C) 1985, 1994, Trustees of Columbia University in the City of New 
  33. York.  The C-Kermit software may not be, in whole or in part, licensed or sold 
  34. for profit as a software product itself, nor may it be included in or 
  35. distributed with commercial products or otherwise distributed by commercial 
  36. concerns to their clients or customers without written permission of the Office 
  37. of Kermit Development and Distribution, Columbia University.  This copyright 
  38. notice must not be removed, altered, or obscured. 
  39.  
  40. Note:  This copyright notice also applies to inclusion of C-Kermit on so-called 
  41. "freeware" and/or "shareware" CD-ROMs. 
  42.  
  43. Contact Columbia University for further information about the terms and 
  44. conditions for redistribution of Kermit software. 
  45.  
  46.  
  47. ΓòÉΓòÉΓòÉ 1.3. C-Kermit Documentation ΓòÉΓòÉΓòÉ
  48.  
  49. The user manual for C-Kermit 5A is the book Using C-Kermit  by Frank da Cruz 
  50. and Christine M. Gianone, published by Digital Press (an Imprint of 
  51. Butterworth-Heinemann), Woburn, MA, USA, 1993, 514 pages, ISBN 1-55558-108-0. 
  52. Using C-Kermit contains complete step-by-step instructions, examples, 
  53. illustrations, tutorials, reference material, tables, and a comprehensive 
  54. index.  If you do not have it, please order it.  It will answer most of your 
  55. questions, and sales help to support the Kermit effort. Use this file as a 
  56. supplement to Using C-Kermit. 
  57.  
  58. Using C-Kermit is available in computer bookstores or directly from Columbia 
  59. University: 
  60.  
  61.    Kermit Development and Distribution 
  62.    Columbia University Academic Information Systems 
  63.    612 West 115th Street 
  64.    New York, NY  10025  USA 
  65.    Telephone: +1 212 854-3703 
  66.    Fax: +1 212 663-8202 or +1 212 662-6442 
  67.    Email: kermit@columbia.edu 
  68.  
  69.  Domestic and overseas orders accepted.  Price: $34.95 (US, Canada, and 
  70.  Mexico), $45 elsewhere.  Orders may be paid by MasterCard or Visa, or prepaid 
  71.  by check in US dollars.  Add $35 bank fee for checks not drawn on a US bank. 
  72.  Price includes shipping.  Do not include sales tax. Inquire about quantity 
  73.  discounts. 
  74.  
  75.  You can also order by phone from the publisher, Digital Press / 
  76.  Butterworth-Heinemann, with MasterCard, Visa, or American Express: 
  77.  
  78.    +1 800 366-2665 (Woburn, Massachusetts office for USA & Canada) 
  79.    +44 993 58521  (Rushden, England office for Europe) 
  80.    +61 2 372-5511  (Chatswood, NSW office for Australia & New Zealand) 
  81.    +65 220-3684   (Singapore office for Asia) 
  82.  
  83.  A German-language edition is also available: 
  84.  
  85.  C-Kermit-Einf╨æhrung und Referenz, Frank da Cruz and Christine M. Gianone, 
  86.  Verlag Heinz Heise, Hannover, Germany (1994). ISBN 3-88229-023-4.  Deutsch von 
  87.  Gisbert W. Selke.  Price: DM 90,00. Verlag Heinz Heise GmbH & Co. KG, 
  88.  Helstorfer Strasse 7, D-30625 Hannover. 
  89.  Tel. +49 (05 11) 53 52-0, Fax. +49 (05 11) 53 53-1 29. 
  90.  
  91.  The Kermit file transfer protocol is specified in: 
  92.  
  93.  Kermit, A File Transfer Protocol, by Frank da Cruz, Digital Press, Bedford, 
  94.  MA, 1987, 379 pages, ISBN 0-932376-88-6. US single-copy price: $29.95. 
  95.  Availability as above. 
  96.  
  97.  News and articles about Kermit software and protocol are published 
  98.  periodically in the journal, Kermit News  Subscriptions are free of charge. 
  99.  Contact Columbia University. 
  100.  
  101.  Online news about Kermit is published in the Kermit Digest and in the 
  102.  comp.protocols.kermit.* newsgroups. 
  103.  
  104.  
  105. ΓòÉΓòÉΓòÉ 2. New Features ΓòÉΓòÉΓòÉ
  106.  
  107.  
  108. ΓòÉΓòÉΓòÉ 2.1. Overview ΓòÉΓòÉΓòÉ
  109.  
  110. OS/2 C-Kermit 5A(190) is available in both 32-bit and 16-bit versions.  The 
  111. 32-bit version is designed to take advantage of most OS/2 2.x and Warp features 
  112. including: 
  113.  
  114.  o Multiple threads (6) for efficient task scheduling and low CPU load 
  115.  o Fast semaphores for intraprocess communication 
  116.  o Extended attributes 
  117.  o VIO session mouse support 
  118.  o TCP/IP, NETBIOS, DECnet, and Named Pipes networking methods 
  119.  o LAN Server remote modems 
  120.  o PM Clipboard 
  121.  o High Speed Asynchronus Communication Services 
  122.  o REXX Language Interface 
  123.  
  124.  Both the 16-bit and 32-bit versions support: 
  125.  
  126.  o HPFS 
  127.  o TCP/IP and DECnet networking methods 
  128.  o And all of C-Kermit's file transfer, terminal emulation, script programming, 
  129.    and character-set conversion features. 
  130.  
  131.  The 16-bit version lacks certain features of the 32-bit version due to 
  132.  architectural or compiler limitations: various printer operations, the REXX 
  133.  programming interface, SET FILE TYPE LABELED (for OS/2 Extended Attributes), 
  134.  mouse support, Named Pipe support, NETBIOS networking, etc. 
  135.  
  136.  The 32-bit version should be used with OS/2 2.x and Warp.  The 16-bit version 
  137.  is for use on OS/2 1.x systems. 
  138.  
  139.  
  140. ΓòÉΓòÉΓòÉ 2.2. Installation ΓòÉΓòÉΓòÉ
  141.  
  142. C-Kermit should be installed by running the INSTALL.CMD REXX program. 
  143. INSTALL.CMD installs the proper version of OS/2 C-Kermit for your system into 
  144. the directory of your choice, configures the initialization files for the 
  145. default values that you choose, and with your permission updates your 
  146. CONFIG.SYS file by adding the C-Kermit directory to the PATH, LIBPATH, DPATH, 
  147. and BOOKSHELF lines. 
  148.  
  149. To execute the install program, place the C-Kermit distribution diskette in the 
  150. A: drive and then either click on the drive icon from the desktop or type 
  151. "a:install" in an OS/2 command window.  (You can also use disk B:).  Then 
  152. simply follow the instructions on your screen. 
  153.  
  154. To bypass the INSTALL procedure and install OS/2 C-Kermit by hand, please read 
  155. the installation instructions in the OS/2 Appendix of Using C-Kermit. 
  156.  
  157.  
  158. ΓòÉΓòÉΓòÉ 2.3. C-Kermit and the OS/2 Work Place Shell ΓòÉΓòÉΓòÉ
  159.  
  160. You can use the Program page in the Settings notebook of the C-Kermit program 
  161. object to enter parameters that will affect the way the program starts. 
  162. C-Kermit does not normally need parameters when it is opened.  You can add 
  163. C-Kermit to the pop-up menu for a folder object (e.g. the Desktop) so you can 
  164. start that program by selecting the choice on the pop-up menu. However, when 
  165. you start C-Kermit, OS/2 sends any parameters to the program. OS/2 considers 
  166. the name of a folder a parameter, so OS/2 sends the folder name to the program 
  167. when you select a program-name choice from the pop-up menu. C-Kermit cannot 
  168. accept a folder name as a parameter.  If you try to start C-Kermit from the 
  169. pop-up menu of a folder and the program does not start or displays an error 
  170. message, you can stop the name of the folder from being sent to the program by 
  171. doing the following: 
  172.  
  173.   1. Display the pop-up menu for the C-Kermit program object that was 
  174.      referenced when you added the C-Kermit to the pop-up menu.  For example, 
  175.      you might have dragged the "OS/2 C-Kermit (32-bit)" object from the 
  176.      C-Kermit folder to the Menu page of the Settings notebook for the Desktop 
  177.      folder.  If so, display the pop-up menu for "OS/2 C-Kermit (32-bit)" in 
  178.      the C-Kermit folder. 
  179.  
  180.   2. Select Open. 
  181.  
  182.   3. Select Settings. 
  183.  
  184.   4. Select the Program tab. 
  185.  
  186.   5. Type the following in the Parameters field: 
  187.  
  188.           %
  189.  
  190.   6. Close the Settings notebook. 
  191.  
  192.  If you have updated the Dialing Directory or Services Directory to include 
  193.  entries for each of the various systems you connect to you can further 
  194.  automate the process of connecting by creating Program Objects for each 
  195.  services directory or dialing directory entry.  To create the new object: 
  196.  
  197.   1. Display the pop-up menu for the "OS/2 C-Kermit (32-bit)" object in the 
  198.      C-Kermit folder. 
  199.  
  200.   2. Select Copy 
  201.  
  202.   3. Edit the New name field to be the name of the service (e.g. xyxcorp.com). 
  203.  
  204.   4. Press Copy 
  205.  
  206.   5. Display the pop-up menu for the object you just created. 
  207.  
  208.   6. Select Settings 
  209.  
  210.   7. Type the appropriate string in the Parameters field.  For a Services 
  211.      Directory entry type: 
  212.  
  213.           -C "access <service_name> [Password:], connect" %
  214.  
  215.      For a Dialing Directory entry type: 
  216.  
  217.           -C "dial <dialing_name>, connect" %
  218.  
  219.  When double clicking on a Services Directory object you would first be 
  220.  prompted for the appropriate password prior to C-Kermit's connecting to the 
  221.  designated service. 
  222.  
  223.  The Work Place Shell provides special parameters which may be passed to 
  224.  filenames to C-Kermit.  These parameters are replaced with the filename at 
  225.  startup.  They are used for drag and drop operations or file associations. 
  226.  
  227.  %*        Inserts the drive letter, path, and file name of a program into the 
  228.            parameter list 
  229.  
  230.  %**P      Insert drive and path information without the last backslash (\). 
  231.  
  232.  %**D      Insert drive with ':' or UNC name. 
  233.  
  234.  %**N      Insert file name without extension. 
  235.  
  236.  %**F      Insert file name with extension. 
  237.  
  238.  %**E      Insert extension without leading dot. In HPFS, the extension always 
  239.            comes after the last dot. 
  240.  
  241.  
  242. ΓòÉΓòÉΓòÉ 2.4. Program Management ΓòÉΓòÉΓòÉ
  243.  
  244.  
  245. ΓòÉΓòÉΓòÉ 2.4.1. Command Processing ΓòÉΓòÉΓòÉ
  246.  
  247. These features apply only when you are typing commands at the C-Kermit> prompt, 
  248. and not to command file or macro execution.  They were added in edit 190. 
  249.  
  250.  
  251. ΓòÉΓòÉΓòÉ 2.4.1.1. Command Retry ΓòÉΓòÉΓòÉ
  252.  
  253. If you enter a command that contains a syntax error, C-Kermit now reprompts you 
  254. automatically with the portion of the command that was correct, so you don't 
  255. have to retype it.  Example: 
  256.  
  257. C-Kermit>set block-check oofa
  258. ?No keywords match - oofa
  259. C-Kermit>set block-check Γûô
  260.  
  261. "Γûô" shows the position of the cursor after you are reprompted.  At this point, 
  262. you can type question mark (?) to find out what is legal here, or you can 
  263. complete the command, or you can erase it with Ctrl-U, etc, just as if you had 
  264. retyped the initial words yourself.  If you want to disable this feature, tell 
  265. C-Kermit to: 
  266.  
  267. C-Kermit> set command retry off
  268.  
  269.  
  270. ΓòÉΓòÉΓòÉ 2.4.1.2. Command Recall ΓòÉΓòÉΓòÉ
  271.  
  272. As of edit 190, C-Kermit saves your commands in a command recall (history) 
  273. buffer, which, by default, holds your last 10 commands.  To recall your 
  274. previous command, press the Up-Arrow key or type Ctrl-B (that is, hold down the 
  275. Control or Ctrl key and press the B or b key).  Type Up-Arrow (or Ctrl-B) again 
  276. to recall the command before that, and so on.  If you try to go back too far, 
  277. C-Kermit beeps at you. 
  278.  
  279. Each time you recall a command, it appears before you as if you had typed it up 
  280. to, but not including, the Enter (Carriage Return) that actually causes it to 
  281. execute.  If you want to execute the command, press the Enter key.  If you want 
  282. to edit it, use the editing keys, including Ctrl-U to erase it. 
  283.  
  284. When you are viewing recalled commands, you can also go forwards in the command 
  285. recall buffer by pressing the Down-Arrow key or typing Ctrl-N.  This is handy 
  286. in case (for example) you went back too far. 
  287.  
  288. You can change the size of the command recall buffer to hold any number of 
  289. commands you like, subject to the memory limitations of your computer.  The 
  290. command is: 
  291.  
  292. SET COMMAND RECALL-BUFFER-SIZE number 
  293.  
  294. where number is the number of commands you want to keep.  The more you keep, 
  295. the more memory C-Kermit uses.  If you enter a size of 0, the command recall 
  296. feature is disabled.  Whenever you give the SET COMMAND RECALL-BUFFER-SIZE 
  297. command, your previous command history is lost.  You can display the size of 
  298. your command recall buffer, as well as your COMMAND RETRY setting, with SHOW 
  299. COMMAND. 
  300.  
  301. Warning: Other versions of C-Kermit use Ctrl-P to go up in the command buffer, 
  302. but you should not use Ctrl-P in OS/2 because it is likely to turn on your 
  303. printer!  (An OS/2 feature.) 
  304.  
  305. If you type Ctrl-P at the C-Kermit> prompt and nothing happens (no beep, no 
  306. recalled command, but you hear some disk activity), then type Ctrl-P once again 
  307. to turn off the printer. 
  308.  
  309.  
  310. ΓòÉΓòÉΓòÉ 2.4.1.3. Typeahead ΓòÉΓòÉΓòÉ
  311.  
  312. Typeahead is now permitted during entry of interactive commands.  Typeahead is 
  313. not preserved, however, over execution of command files or macros, because 
  314. these might themselves require keyboard input, or might enter CONNECT or file 
  315. transfer protocol mode. 
  316.  
  317.  
  318. ΓòÉΓòÉΓòÉ 2.4.2. The SET EXIT Command ΓòÉΓòÉΓòÉ
  319.  
  320.  SET EXIT WARNING { ON, OFF } Tells whether C-Kermit should issue a warning 
  321.            message and require confirmation if an EXIT command, or a SET LINE 
  322.            (SET PORT), SET HOST, or TELNET command is given and a connection 
  323.            (dialed or network) still appears to be open, since any of these 
  324.            commands would close the currently open connection.  The default is 
  325.            OFF, meaning no warnings. 
  326.  
  327.  If SET EXIT WARNING is ON, a warning is issued if a network connection appears 
  328.  to be open: 
  329.  
  330.   C-Kermit>exit
  331.    A network connection to foo.bar.edu might still be active.
  332.   OK to exit?
  333.  
  334.  at which point you can type Yes or No. 
  335.  
  336.  You will also get a warning if the serial SET LINE device has the carrier (CD, 
  337.  DCD) signal and C-Kermit has not been told to SET CARRIER OFF: 
  338.  
  339.   C-Kermit>set line com2
  340.    A serial connection might still be active on com1
  341.   OK to close?
  342.  
  343.  Note that not all versions of C-Kermit have access to the carrier signal; if 
  344.  your version of C-Kermit says "Modem signals not available" when you give a 
  345.  SHOW COMM command, then SET EXIT WARNING ON will always warn you about a 
  346.  possibly active serial connection when you try to exit after using a SET LINE 
  347.  (SET PORT) connection. 
  348.  
  349.  SET EXIT STATUS number Tells C-Kermit to use the given number as its program 
  350.            exit (return) code.  This lets the user set program return code 
  351.            without actually having to exit; for example, the user can OR in 
  352.            various bits at different times. 
  353.  
  354.  Display the SET EXIT values with SHOW EXIT.  The SET and SHOW EXIT commands 
  355.  were added in Edit 190. 
  356.  
  357.  
  358. ΓòÉΓòÉΓòÉ 2.4.3. Command Parsing Improvements ΓòÉΓòÉΓòÉ
  359.  
  360.  
  361. ΓòÉΓòÉΓòÉ 2.4.3.1. Entering OS/2 Filenames ΓòÉΓòÉΓòÉ
  362.  
  363. Certain characters have special uses in C-Kermit commands: space separates 
  364. command words, backslash is prefix for special items like variable names, 
  365. question mark produces a short help message.  How does one refer to files or 
  366. directories whose names contain these characters?  In most contexts, you can 
  367. include a literal space in a file or directory name using "backslash" notation: 
  368.  
  369. C-Kermit> cd a\32b
  370. C-Kermit> send w\32x.y\32z
  371.  
  372. or by enclosing the file or directory name in braces: 
  373.  
  374. C-Kermit> cd {a b}
  375. C-Kermit> send {w x.y z}
  376.  
  377. Backslashes in filenames (i.e. directory separators) must normally be doubled: 
  378.  
  379. C-Kermit> cd e:\\budget\\food
  380. C-Kermit> send c:\\ckermod.ini
  381.  
  382. or represented as "forward" slashes: 
  383.  
  384. C-Kermit> cd e:/budget/food
  385. C-Kermit> send c:/ckermod.ini
  386.  
  387. Question marks, which are used in OS/2 as "wildcards" to match any single 
  388. character, must be quoted by backslash: 
  389.  
  390. C-Kermit> send cker\?\?\?.ini
  391.  
  392. As of edit 190, it is possible to enter OS/2 and DOS file specifications in the 
  393. natural way in most contexts, using backslash as the directory separator, for 
  394. example: 
  395.  
  396. C-Kermit> send c:\ckermit\ckermit.upd
  397.  
  398. This notation works in any command field where a file specification or a 
  399. directory name is expected.  It does not ordinarily work in command fields that 
  400. Kermit treats as text strings, as in the RUN command.  So, for example, while 
  401. you can now type: 
  402.  
  403. C-Kermit> delete \foo\x.x
  404.  
  405. You still must type: 
  406.  
  407. C-Kermit> run del \\foo\\x.x
  408.  
  409. (because this is just "unknown" text that Kermit sends to OS/2). 
  410.  
  411. However, you still must represent imbedded spaces as \32. 
  412.  
  413. If desired, you can temporarily turn off Kermit's processing of backslashes and 
  414. question marks to allow these characters to be used naturally in any command, 
  415. using the new SET COMMAND QUOTING command.  But as long as COMMAND QUOTING is 
  416. ON, which is the normal situation, the rules are: 
  417.  
  418.   1. When parsing the name of an existing file or directory, Kermit first tries 
  419.      the literal string, and if it fails, then it evaluates the string for 
  420.      backslash escapes and tries again.  For example, if you type: 
  421.  
  422.           C-Kermit> send c:\mupeen\oofa.txt
  423.  
  424.      and the file c:\mupeen\oofa.txt exists, Kermit will send it.  If you type: 
  425.  
  426.           C-Kermit> send c:\%a
  427.  
  428.      and a file named %A does not exist in the root directory of the C: disk, 
  429.      Kermit will attempt to evaluate the \%a variable to obtain the name of the 
  430.      file.  Affected commands include: CD, DELETE, DIRECTORY, IF [NOT] 
  431.      DIRECTORY, IF [NOT] EXIST, IF [NOT] NEWER, MSEND, OPEN READ, PRINT, PSEND, 
  432.      RENAME, RESEND, SEND, TAKE, TRANSLATE, TRANSMIT, and TYPE. 
  433.  
  434.   2. When parsing the name of an output file, Kermit first prescans the string 
  435.      to see if it contains any variable names, function calls, etc; if so, it 
  436.      evaluates the string; if not, it takes the string literally. For example, 
  437.      if you type: 
  438.  
  439.           C-Kermit> receive \%a
  440.  
  441.      Kermit will attempt to evaluate the variable \%a to obtain the filename, 
  442.      rather than creating a file called %A in the root directory.  But if you 
  443.      type: 
  444.  
  445.           C-Kermit> receive \letters\oofa.txt
  446.  
  447.      Kermit will take the backslashes literally and attempt to create the file 
  448.      \letters\oofa.txt.  Affected commands include: multine GET, LOG, OPEN 
  449.      APPEND, OPEN WRITE, RECEIVE, RENAME, TRANSLATE. 
  450.  
  451.   3. You can't mix single backslashes as directory separators and backslash 
  452.      escapes in the same string.  If you want to include a directory 
  453.      specification AND backslash escapes in the same string, the directory 
  454.      separators must be either "/" or "\\", for example: 
  455.  
  456.           C-Kermit> send c:ckermit/ckermit.\%a
  457.  
  458.      or: 
  459.  
  460.           C-Kermit> send c:\\ckermit\\ckermit.\%a
  461.  
  462.   4. You can't terminate a string with a single backslash, since that indicates 
  463.      a line continuation; you must use either "/" or "\\".  For example, you 
  464.      can't type: 
  465.  
  466.           C-Kermit> cd \
  467.  
  468.      but you can type: 
  469.  
  470.           C-Kermit> cd /
  471.  
  472.      or: 
  473.  
  474.           C-Kermit> cd \\
  475.  
  476.   5. You can avoid ambiguities by using "/" or "\\" as directory separators, 
  477.      which is how you had to enter them before this change.  Thus this change 
  478.      should be transparent to current users and existing scripts. 
  479.  
  480.  Exception:  This change does not apply to the SET LINE / SET HOST / SET PORT 
  481.  command, so any backslashes that must be included in the port or host name 
  482.  must either be doubled or replaced by "forward" slashes.  For example, if you 
  483.  want to "set port \\server\modem", you must enter "set port //server/modem" or 
  484.  "set port \\\\server\\modem" (or "set port //server\\modem", or...) 
  485.  
  486.  Minutiae:  So what if a file called \%A exists in the root directory, but you 
  487.  want to send the file whose name is stored in the variable \%A?  "send \%a" 
  488.  will send the former rather then the latter.  Well, you can always FORCE an 
  489.  item to be treated as a variable by using the \Fcontents() function: "send 
  490.  \fcontents(\%a)". 
  491.  
  492.  Here's another: single backslashes in a filename that is assigned to a 
  493.  variable won't behave as you might expect.  For example: "define \%a 
  494.  \letters\oofa.txt", "dir \%a".  The problem here is that \%a is evaluated 
  495.  recursively, and when the single backslashes are encountered in the first 
  496.  level evaluation, that triggers a second level, which destroys the string. 
  497.  Again, work around by using "/" or "\\" or "\fcontents()". 
  498.  
  499.  Such problems will affect only the most advanced Kermit users (who should be 
  500.  able to cope with them) and are more than offset by the benefits to "ordinary" 
  501.  users who are more likely to use literal OS/2 file specifications in commands 
  502.  than C-Kermit variable or function names. 
  503.  
  504.  
  505. ΓòÉΓòÉΓòÉ 2.4.3.2. The SET COMMAND QUOTING Command ΓòÉΓòÉΓòÉ
  506.  
  507. There is a new command in edit 190 to turn C-Kermit's backslash and 
  508. question-mark features off and on for any commands at all: 
  509.  
  510.  SET COMMAND QUOTING { ON, OFF } 
  511.      SET COMMAND QUOTING OFF gives you the ability to forget about all the 
  512.      complicated rules regarding backslashes and question marks in commands. 
  513.      You can enter OS/2 file and device names in the natural way in any command 
  514.      at all, but you will not be able to get help by typing question-mark, nor 
  515.      enter variable names and so forth in commands (but backslash notation for 
  516.      special characters, e.g. \32 for an imbedded space, still works). 
  517.  
  518.  When ON (which is the default), backslash and question mark fulfill their 
  519.  normal roles in C-Kermit commands.  When OFF, backslash and question mark are 
  520.  treated just like any other ordinary text characters by the command reader. 
  521.  
  522.  You can display the current command quoting setting with: 
  523.  
  524.  SHOW COMMAND 
  525.  
  526.  Examples: 
  527.  
  528.   set command quoting off
  529.   send foo.bar c:\foo\bar\baz\oofa.txt
  530.   get d:\files\???.?
  531.   set command quoting on
  532.  
  533.  instead of: 
  534.  
  535.   send foo.bar c:\\foo\\bar\\baz\\oofa.txt
  536.   get d:\\files\\\?\?\?.\?
  537.  
  538.  Or: 
  539.  
  540.   set command quoting off
  541.   cd \
  542.   set port \\server\modem
  543.   directory e:\pictures\pic???.gif
  544.   set command quoting on
  545.  rather than: 
  546.  
  547.   cd \\
  548.   set port \\\\server\\modem
  549.   directory e:\\pictures\\pic\?\?\?.gif
  550.  
  551.  Caution:  Expect unpleasant results if you try to run script programs with 
  552.  COMMAND QUOTING OFF. 
  553.  
  554.  
  555. ΓòÉΓòÉΓòÉ 2.4.4. DIRECTORY Command Improvements: ΓòÉΓòÉΓòÉ
  556.  
  557. As of edit 190, the OS/2 C-Kermit DIRECTORY command, which works by asking the 
  558. command shell specified in the COMSPEC environment variable to print a 
  559. directory listing, has been improved to allow option switches and output 
  560. redirection to be included.  The syntax is now: 
  561.  
  562. DIRECTORY [ filespec ] [ switches ] [ > file-or-device-name ] 
  563.  
  564. The file specification (if any) must precede any switches, and a space or tab 
  565. must separate the filespec from the switches.  If there is no file 
  566. specification, then there can be no spaces in the switches or output 
  567. redirection.  Examples: 
  568.  
  569. directory                  ; List all files in current directory
  570. directory /p               ; List all files, pause between screens
  571. directory >x.x             ; List all files to file x.x
  572. directory /o-d>x.x         ; List all files by date to file x.x
  573. directory a:               ; All files on current directory of A:
  574. directory a:\foo           ; All files in FOO directory of A:
  575. directory oofa             ; List all oofa files
  576. directory oofa.*           ; List all oofa files
  577. dir oofa.* /p              ; List all oofa files, pause between screens
  578. dir oofa.* > prn           ; Print a listing of all oofa files
  579. dir oofa.* /o-d > oofa.dir ; Chronological listing of oofa files to a file
  580.  
  581.  
  582. ΓòÉΓòÉΓòÉ 2.5. Making and Using Connections ΓòÉΓòÉΓòÉ
  583.  
  584.  
  585. ΓòÉΓòÉΓòÉ 2.5.1. Using the Services Directory ΓòÉΓòÉΓòÉ
  586.  
  587. In the original release of C-Kermit, 5A(188), the services directory feature 
  588. was provided mainly as an illustration of how C-Kermit's script programming 
  589. language can be used to build handy communications tools, and so it was not 
  590. presented or explained until Chapter 13 of Using C-Kermit, and therefore was 
  591. probably missed by a lot of readers (and users). 
  592.  
  593. Since then, the services directory feature has proven to be quite useful in its 
  594. own right, and has also been improved in one small but important way. Here is a 
  595. brief nontechnical explanation. 
  596.  
  597. The services directory is a plain-text file in your Kermit directory, 
  598. containing one line, or "entry", for each service that you want to access. Each 
  599. service listed in your services directory can be connected to and logged in to 
  600. automatically, no matter whether this involves dialing up a modem, making a 
  601. network connection, or any other type of connection that C-Kermit can handle. 
  602. The name of the services directory file is CKERMIT.KSD. 
  603.  
  604. The services directory can be used only if you are also using the standard 
  605. C-Kermit initialization file. 
  606.  
  607. Each line in the services directory has the following parts: 
  608.  
  609. <name-of-entry> <login-macro-name> <username> <connection-details> 
  610.  
  611. For example: 
  612.  
  613. HP9000 unixlogin olga net tcp/ip hp.xyzcorp.com
  614.  
  615. where "HP9000" is the entry name, "unixlogin" is the login macro name, "olga" 
  616. is the username, and "net tcp/ip hp.xyzcorp.com" are the connection details. 
  617.  
  618. To use this entry, you would give the following command at the C-Kermit prompt: 
  619.  
  620. C-Kermit> access hp9000
  621.  
  622. or: 
  623.  
  624. C-Kermit> access hp9000 xxxxxx
  625.  
  626. where xxxxxx is your password on the computer you will be accessing. C-Kermit's 
  627. ACCESS macro (defined in your C-Kermit initialization file) handles the 
  628. connection details: "net" means it's a network connection; "tcp/ip" tells which 
  629. type of network, and "hp.xyzcorp.com" tells the name or address (in this case, 
  630. the name) of the computer or service on the network.  If you don't supply a 
  631. password to the ACCESS command, you are prompted for it.  You do not (can not, 
  632. and should not) include passwords in your services directory file. 
  633.  
  634. Here's another sample entry, in which the connection is made by dialing a 
  635. modem: 
  636.  
  637. COMPUSERVE cislogin  765,4321  call hayes com1 2400 93,876-5432
  638.  
  639. Here, "COMPUSERVE" is the entry name, "cislogin" is the name of the login 
  640. macro, "765,4321" is your CompuServe user ID, and the connection details are: 
  641. "call hayes com1 2400 93,876-5432".  "Call" means we will be making a phone 
  642. call; "hayes" tells which type of modem, "com1" is the name of the device that 
  643. modem is connected to, "2400" tells the communication speed, and "93,876-5432" 
  644. is the phone number to dial. 
  645.  
  646.  
  647. ΓòÉΓòÉΓòÉ 2.5.1.1. Login Macros ΓòÉΓòÉΓòÉ
  648.  
  649. Each login macro looks for the appropriate prompts from the host or service and 
  650. responds accordingly with your username, password, and/or other information, 
  651. and then waits until it sees the main prompt of the host or service, or other 
  652. indication that you have been logged in successfully. The following login 
  653. macros are available in the standard C-Kermit initialization file, CKERMIT.INI: 
  654.  
  655.  UNIXLOGIN 
  656.      For logging in to all types of UNIX systems: Solaris, HP-UX, Linux, IRIX, 
  657.      DG/UX, NeXTSTEP, OSF/1, SunOS, etc etc.  The default system prompt 
  658.      (explained below) is "\13\10$\32"; that is, carriage return, linefeed, 
  659.      dollar sign, space. 
  660.  
  661.  VMSLOGIN 
  662.      For logging in to DEC VAX/VMS or OpenVMS systems.  The default system 
  663.      prompt is "\10\13$\32"; that is, linefeed, carriage return, dollar sign, 
  664.      space. This macro can also be used for logging in to DG AOS/VS systems if 
  665.      you specify a different prompt ("\13\10)\32").  NOTE: The VMSLOGIN macro 
  666.      has been updated to account for new procedures for use with VMS 6.0 and/or 
  667.      6.1, while retaining comptability with earlier VMS releases. 
  668.  
  669.  VMLINELOGIN 
  670.      For logging into IBM mainframes with VM/CMS over linemode connections. 
  671.  
  672.  VMFULLOGIN 
  673.      For logging into IBM mainframes with VM/CMS over fullscreen connections. 
  674.  
  675.  CISLOGIN 
  676.      For logging in to CompuServe. 
  677.  
  678.  DOWLOGIN 
  679.      For logging in to Dow Jones News/Retrieval. 
  680.  
  681.  DJNRSPRINT 
  682.      For logging in to Dow Jones News/Retrieval over SprintNet. 
  683.  
  684.  NOLOGIN 
  685.      For accessing computers or services that do not require logging in. 
  686.  
  687.  Each login macro name must be followed by a username, even NOLOGIN. For 
  688.  NOLOGIN, just include a "dummy" name, like "xxxx", that will not be used. 
  689.  
  690.  Other login macros can be easily constructed, modeled on those above.  Read 
  691.  Chapters 11-13 of "Using C-Kermit" for full instructions.  If you add or 
  692.  modify login macros, you should put their definitions in your C-Kermit 
  693.  customization file, CKERMOD.INI. 
  694.  
  695.  There was a problem with the login macros in C-Kermit 5A(188-189), namely that 
  696.  the system prompt was hard-coded into the macro.  For example, the UNIXLOGIN 
  697.  macro assumed that the UNIX shell prompt was "$ " (dollar sign followed by 
  698.  space), but in many cases it might be something else, and the only way to 
  699.  allow for different prompts was to edit the macro itself.  In C-Kermit 5A(190) 
  700.  and later, you may include the system prompt in your services directory by 
  701.  grouping it together in curly braces with the login macro name: 
  702.  
  703.   {macroname prompt}
  704.  
  705.  For example: 
  706.  
  707.   CSHELL    {unixlogin \13\10%\32} olga net tcp/ip bsd.xyzcorp.com
  708.   CHEMISTRY {vmslogin \10\13CHEM$} OLGA net tcp/ip chemlab.xyzcorp.com
  709.   DG        {vmslogin \13\10)\32}  olga net tcp/ip aosvs.xyzcorp.com
  710.  
  711.  The first example specifies the C-Shell prompt, "% ", rather than using the 
  712.  default UNIX (Bourne Shell, K-Shell) prompt of "$ ".  The second example 
  713.  accesses a system that has a custom prompt.  The third uses the VMSLOGIN macro 
  714.  to access a Data General AOS/VS system by specifying the AOS/VS prompt, ") ", 
  715.  since otherwise the Username: and Password: prompts are the same as for VMS. 
  716.  
  717.  The "backslash-number" notation is a way of including special (usually 
  718.  nonprintable) characters in C-Kermit commands and files, explained on pages 
  719.  21-22 of "Using C-Kermit".  The number is the ASCII character number, such as 
  720.  10 for linefeed, 32 for space. 
  721.  
  722.  
  723. ΓòÉΓòÉΓòÉ 2.5.1.2. Connection Details ΓòÉΓòÉΓòÉ
  724.  
  725. The Connection Details part of a services directory entry starts with one of 
  726. the following words: 
  727.  
  728.  CALL      The connection is made with a phone call through a modem. 
  729.  
  730.  SERIAL    The connection is a direct (dedicated) serial connection. 
  731.  
  732.  NET       The connection is made on a network. 
  733.  
  734.  The subsequent information depends on the type of connection. 
  735.  
  736.  CALL must be followed by the following information, in this order: 
  737.  
  738.   1. The modem type (a valid SET MODEM value). 
  739.   2. The name of the device on your computer that the modem is connected to. 
  740.   3. The speed, in bits per second, at which to use the device. 
  741.   4. The telephone number to dial.  This can also be the name of an entry 
  742.   5. in your dialing directory. 
  743.  
  744.  SERIAL must be followed by the following information, in this order: 
  745.  
  746.   1. The serial device name. 
  747.   2. The communication speed. 
  748.  
  749.  NET must be followed by: 
  750.  
  751.   1. The network type: TCP/IP, X.25, DECnet, etc (a valid SET NET value). 
  752.   2. The name or address of the host or service you want to connect to. 
  753.   3. Additional network-specific information, like a service or socket number. 
  754.  
  755.  For TCP/IP network connections, you can include a socket number by appending 
  756.  to the IP name or address with a colon, for example: 
  757.  
  758.   WEATHER  nologin  xxxx  net tcp/ip madlab.sprl.umich.edu:3000
  759.  
  760.  Create your services directory file using a text editor, as a plain-text 
  761.  (ASCII) file.  If you are using a word processor, be sure to save your 
  762.  services directory as a plain text (ASCII) file. 
  763.  
  764.  To use your services directory, just type "access" and the service name at the 
  765.  C-Kermit prompt, for example: 
  766.  
  767.   C-Kermit> access hp9000
  768.    olga's password: __________
  769.  
  770.  To list your services directory, type "list" at the C-Kermit prompt.  To look 
  771.  up a particular services directory entry, type "list" and then the name, for 
  772.  example "list hp9000". 
  773.  
  774.  
  775. ΓòÉΓòÉΓòÉ 2.5.2. Using Serial Communication Ports ΓòÉΓòÉΓòÉ
  776.  
  777. In OS/2 C-Kermit, SET LINE and SET PORT are synonyms, they do exactly the same 
  778. thing: select the communication device.  The syntax is the same for both: 
  779.  
  780. SET LINE [ device-name ]
  781. SET PORT [ device-name ]
  782.  
  783. If you omit the device name, C-Kermit reverts to its default communications 
  784. device, COM1.  If you include a device name: 
  785.  
  786.   1. If the device name is a single digit, 1 through 8, C-Kermit converts this 
  787.      digit to the corresponding COM port name, COM1 through COM8. For example, 
  788.      "set port 2" is converted to "set port com2". 
  789.  
  790.   2. If the device name begins with an underscore character (_), and all of the 
  791.      following characters are numeric (for example, _12), the number is assumed 
  792.      to be a file descriptor for an already-open communication device (more 
  793.      about this below).  If the device name begins with an underscore, but any 
  794.      non-numeric characters follow, a syntax error results. 
  795.  
  796.   3. Any other sequence of characters (including "COM1", etc) is accepted 
  797.      literally as a device name.  This includes Universal Naming Convention 
  798.      (UNC) designations such as "\\server\modem" (which, due to Kermit's use of 
  799.      the backslash character as command-escape, must be entered as 
  800.      "\\\\server\\modem" or "//server/modem").  (Hint: But see the SET COMMAND 
  801.      QUOTING command description.) 
  802.  
  803.   4. In cases (1) and (3), C-Kermit attempts to open the device, and then, if 
  804.      successful, checks to see whether it is a real communications device.  If 
  805.      not, the SET LINE / SET PORT command fails.  In case (2) above, no 
  806.      checking is done.  NOTE: You can also pass an open file descriptor to 
  807.      C-Kermit on the command line, e.g. 
  808.  
  809.           [C:\WORK] ckermit -l 4
  810.  
  811.  If you have problems using COM3, COM4, or higher, specify the address and 
  812.  interrupt number (IRQ) in your OS/2 CONFIG.SYS file, in the line that starts 
  813.  the serial communication driver, COM.SYS (or SIO.SYS): 
  814.  
  815.   DEVICE=C:\OS2\COM.SYS (number,base-address,irq) ...
  816.  
  817.  This example gives the addresses and IRQs for COM3 and COM4 but leaves the 
  818.  values for COM1 and COM2 alone: 
  819.  
  820.   DEVICE=C:\OS2\COM.SYS (3,3E8,10) (4,2E8,15)
  821.  
  822.  and this example gives values for COM1 through COM4: 
  823.  
  824.   DEVICE=C:\OS2\COM.SYS (1,3F8,4) (2,2F8,3) (3,3E8,10) (4,2E8,15)
  825.  
  826.  Warning: The addresses and IRQs for COM3 and COM4 are not standardized, and 
  827.  can vary depending on the design and configuration of your communication board 
  828.  or internal modem.  Consult the documentation that came with your device. Make 
  829.  sure you don't have multiple devices using the same IRQ. 
  830.  
  831.  If you are unable to communicate at all on a serial connection, one possible 
  832.  reason might be that you have SET FLOW RTS/CTS (which is the default), but the 
  833.  serial device is not receiving the CTS signal.  This can happen even if you 
  834.  have give a prior MODE COMx OCTS=OFF command.  Try SET FLOW NONE.  If that 
  835.  doesn't work, try rebooting your PC to reset the communications device driver. 
  836.  
  837.  SET FLOW XON/XOFF prevents you from transmitting Ctrl-S and Ctrl-Q characters 
  838.  to the host.  These characters are commands (Search and Quote) in EMACS.  To 
  839.  use Ctrl-S and Ctrl-Q as commands to host applications, you must SET FLOW NONE 
  840.  or SET FLOW RTS/CTS. 
  841.  
  842.  
  843. ΓòÉΓòÉΓòÉ 2.6. Terminal Emulation ΓòÉΓòÉΓòÉ
  844.  
  845. VT220 and ANSI terminal emulations have been added in edit 190, along with 
  846. mouse support and numerous other features described in this section. 
  847.  
  848. In OS/2 C-Kermit 5A(190), screen rollback (normally accomplished by using the 
  849. Page Up and Down keys) is instantaneous, and the maximum number of saved 
  850. screens is virtually unlimited in the 32-bit version. 
  851.  
  852. The active screen may be sized to any length that is supported by your video 
  853. adapter up to 100 lines using the OS/2 MODE command, e.g.: 
  854.  
  855. MODE CON CO80,55
  856.  
  857. and you may also change the screen width in the same way: 
  858.  
  859. MODE CON CO132,35
  860.  
  861. You can do this from the C-Kermit> prompt too: 
  862.  
  863. C-Kermit> run mode con co80,43
  864.  
  865. The status line and the popup help screens have been totally redesigned to be 
  866. more informative, and there are more of them.  For example, you get a different 
  867. status line and popup help screens if you are in regular "online mode", or if 
  868. your screen is rolled back, or if you are composing an accented character. 
  869.  
  870. The new \v(keyboard) variable indicates the keyboard model: "88", "101", or 
  871. "122".  Unknown keyboards are reported as 4-digit hexadecimal values. 
  872.  
  873.  
  874. ΓòÉΓòÉΓòÉ 2.6.1. Auto Up- and Download ΓòÉΓòÉΓòÉ
  875.  
  876. As of edit 190, OS/2 C-Kermit is able to respond automatically to "autoupload", 
  877. "autodownload", or auto-anything-else directives from the remote computer 
  878. during CONNECT mode.  These directives come in the form of an Application 
  879. Program Command escape sequence, or APC, when C-Kermit's terminal emulation is 
  880. ANSI, VT100, VT102, or VT220. 
  881.  
  882. The APC is sent by a host application to the terminal emulator, containing one 
  883. or more commands to be executed by the terminal emulation program.  This 
  884. mechanism lets the host application software control your communications 
  885. software, allowing an unprecedented degree of automation and convenience. 
  886.  
  887. Good uses for this feature include: 
  888.  
  889.   1. automatic communications, protocol, terminal, keyboard, or other setups by 
  890.      the host application; 
  891.  
  892.   2. automatic initiation of file transfer by the host application. 
  893.  
  894.  The form of an APC is: 
  895.  
  896.   <ESC>_text<ESC>\
  897.  
  898.  where "<ESC>" is ASCII character 27 (Escape), and text is a command or a list 
  899.  of commands separated by commas. The APC sequence was originally defined by 
  900.  Digital Equipment Corporation for its VT300-series and higher terminals. 
  901.  
  902.  There are two "ends" to an APC operation, and you need to understand how to 
  903.  control each end.  Let's call the application which sends an APC escape 
  904.  sequence the "APC sender", and the application that receives it, and which is 
  905.  supposed to execute the commands it contains, the "APC receiver". 
  906.  
  907.  Any host application can be an APC sender.  To send an APC, all it needs to do 
  908.  is display the desired commands on your terminal screen, enclosed in <ESC>_ 
  909.  and <ESC>\.  C-Kermit 5A(189) (and later) has a command for doing this: 
  910.  
  911.  APC text 
  912.  
  913.  where the text is a command (or commands) for the APC receiver. Leading and 
  914.  trailing spaces are removed from the text unless it is enclosed in braces: 
  915.  
  916.  APC { text } 
  917.  
  918.  Here's an example that sets OS/2 C-Kermit parameters from UNIX (or VMS) 
  919.  C-Kermit's command line, while OS/2 C-Kermit is in CONNECT mode: 
  920.  
  921.   C-Kermit> apc set receive packet-length 2000, set window 4
  922.  
  923.  This command causes UNIX C-Kermit to send the following characters to the 
  924.  terminal (i.e. OS/2 C-Kermit's terminal emulator): 
  925.  
  926.   <ESC>_set receive packet-length 2000, set window 4<ESC>\
  927.  
  928.  OS/2 C-Kermit recognizes the APC sequence, extracts the commands from it, and 
  929.  processes them automatically, according to the rules listed below. 
  930.  
  931.  Here's an example in which you define and then execute a UNIX C-Kermit macro 
  932.  to send a file from UNIX C-Kermit, causing OS/2 C-Kermit to receive it 
  933.  automatically without your having to escape back and type "receive".  You do 
  934.  not need to CONNECT again after the transfer is done, either; this too happens 
  935.  automatically. 
  936.  
  937.   C-Kermit> define autosend apc receive, send \%1
  938.   C-Kermit> autosend oofa.txt
  939.  
  940.  A macro is used because if you type APC RECEIVE at the UNIX C-Kermit prompt, 
  941.  OS/2 C-Kermit goes immediately into RECEIVE mode and you have no way to give 
  942.  the SEND command to UNIX C-Kermit.  Conversely, if you type the SEND command 
  943.  first, UNIX C-Kermit goes into SEND mode, and you have no opportunity to give 
  944.  it an APC command.  When the macro (or a TAKE command file) is the source of 
  945.  commands, the "Catch-22" is avoided because the keyboard is out of the 
  946.  picture. 
  947.  
  948.  The APC receiver can be: 
  949.  
  950.  o MS-DOS Kermit 3.13 or later 
  951.  o C-Kermit 5A(190) for OS/2 
  952.  o C-Kermit 5A(190) for UNIX 
  953.  o C-Kermit 5A(190) for VMS 
  954.  
  955.  When one of these Kermit programs is in CONNECT mode, and an APC escape 
  956.  sequence arrives, the commands it contains are executed if: 
  957.  
  958.   1. Terminal emulation is VT100, VT102, VT220, VT320, or ANSI, and: 
  959.   2. SET TERMINAL APC is ON and the commands are not "dangerous", or: 
  960.   3. SET TERMINAL APC is UNCHECKED. 
  961.  
  962.  After processing the APC sequence, whether its commands are executed or not, 
  963.  the APC receiver returns to CONNECT mode automatically. 
  964.  
  965.  The C-Kermit initialization file defines several macros to let you take 
  966.  advantage of the APC feature.  They are to be used at the C-Kermit> prompt, 
  967.  when you are accessing C-Kermit through an APC receiver.  They include: 
  968.  
  969.  PCSEND filespec [ as-name ] 
  970.      Sends the file or files from C-Kermit to the "PC" that's on your desk. (Of 
  971.      course, the PC might also be a UNIX workstation, etc).  If the <filespec> 
  972.      does not contain wildcard characters (that is, it is the name of a single 
  973.      file), you can include the optional "as-name" to send it under a different 
  974.      name.  The file or files are sent according to C-Kermit's current FILE 
  975.      TYPE setting, text or binary (except in VMS, where VMS C-Kermit determines 
  976.      the file type and transfer automatically for each file).  In other words, 
  977.      the PCSEND macro is exactly like the SEND command, except it automatically 
  978.      puts your local Kermit program into RECEIVE mode, and then back into 
  979.      CONNECT mode again when the transfer is complete.  This process is 
  980.      sometimes referred to as "autodownloading". 
  981.  
  982.  PCGET filespec [ as-name ] 
  983.      This tells C-Kermit to get the specified file or files from your "PC". It 
  984.      puts your local Kermit program into server mode, GETs the specified files 
  985.      from it, then sends it a FINISH command and puts it back in CONNECT mode 
  986.      automatically.  The transfer type is governed by C-Kermit's current FILE 
  987.      TYPE setting. 
  988.  
  989.  This process can be called "autouploading". 
  990.  
  991.  C-Kermit's response to APC sequences is controlled by the following command: 
  992.  
  993.  SET TERMINAL APC { ON, OFF, UNCHECKED } 
  994.  
  995.  The default setting is OFF, meaning that C-Kermit ignores APC sequences unless 
  996.  you tell it otherwise.  In the OS/2 version, they are harmlessly absorbed and 
  997.  not displayed. 
  998.  
  999.  To activate the APC feature, use: 
  1000.  
  1001.  SET TERMINAL APC ON 
  1002.  
  1003.  This allows execution of all commands received in APC sequences except those 
  1004.  considered dangerous, such as: PUSH, RUN, !, REDIRECT, DELETE, RENAME, OUTPUT, 
  1005.  ENABLE, DISABLE, SCRIPT, and SET TERMINAL APC.  With this setting, for 
  1006.  example, it should not be possible for someone to send you a "letter bomb" or 
  1007.  screen message that contained an APC sequence to execute a command on your 
  1008.  computer (because RUN and ! are disabled).  The commands allowed by SET 
  1009.  TERMINAL APC ON are only the ones which affect Kermit itself, including the 
  1010.  initiation of Kermit file transfers. 
  1011.  
  1012.  Should you want to enable APC execution off ALL commands, which can be 
  1013.  dangerous and is therefore not recommended unless you know exactly what you 
  1014.  are doing and have total control over what is sent to your screen by the 
  1015.  remote host or service, you can: 
  1016.  
  1017.  SET TERMINAL APC UNCHECKED 
  1018.  
  1019.  Use UNCHECKED at your own risk. 
  1020.  
  1021.  Note that when TERMINAL APC is not OFF, the CONNECT command might run a bit 
  1022.  slower than when TERMINAL APC is OFF. 
  1023.  
  1024.  
  1025. ΓòÉΓòÉΓòÉ 2.6.2. The SET KEY Command ΓòÉΓòÉΓòÉ
  1026.  
  1027. As of edit 190, OS/2 C-Kermit's key mapping facility uses "Kermit keyboard 
  1028. verbs" rather than scan codes to denote actions that can be mapped to keys. All 
  1029. functions previously available are still available, but rather than being tied 
  1030. to hardwired scan codes, they are tied to \Kverbs.  This means: 
  1031.  
  1032.  o You can move them anywhere you want. 
  1033.  
  1034.  o You can't "lose" them, as you could before if you mapped something else over 
  1035.    a sacred key, and therefore you can redefine sacred keys. 
  1036.  
  1037.  o That is, NO keys are sacred; no keys are preempted by Kermit in any way that 
  1038.    you can't overcome; you can undefine/redefine any and all keys. 
  1039.  
  1040.  o Key mapping files now contain descriptive verbs rather than magic numbers as 
  1041.    the definitions. 
  1042.  
  1043.  o SHOW KEY shows the \Kverb, rather than an obscure numeric cross-reference. 
  1044.  
  1045.  Furthermore: 
  1046.  
  1047.  o The \Kverbs are totally compatible with MS-DOS Kermit (even if some of the 
  1048.    scan codes are not). 
  1049.  
  1050.  o You can combine characters, strings, and \Kverbs arbitrarily in a key 
  1051.    definition; e.g. you can put two or more verbs on one key, etc. 
  1052.  
  1053.  Examples (for the F1 key): 
  1054.  
  1055.   set key \315 \161             ; Any single character
  1056.   set key \315 \27b             ; Escape and "b"
  1057.   set key \315 Any string       ; Any string of ordinary characters
  1058.   set key \315 { Any string }   ; String with leading & trailing spaces
  1059.   set key \315 \KupArr          ; Up-Arrow
  1060.   set key \315 \KupArr\KrtArr   ; Up-Arrow and Right-Arrow
  1061.   set key \315 abc\{KupArr}xyz  ; "abc", then Up-Arrow, then "xyz"
  1062.   set key \315 abc\KupArr xyz   ; "abc", then Up-Arrow, then " xyz"
  1063.   set key \315 \v(time)         ; Time when SET KEY was executed (constant)
  1064.   set key \315 \\v(time)        ; Time when key is pressed (variable)
  1065.  
  1066.  Braces are not required except to resolve ambiguity or to preserve leading 
  1067.  and/or trailing spaces in the definition.  Note that \\v(name) is a special 
  1068.  case.  Other backslash quantities cannot have their evaluation postponed by 
  1069.  "double quoting" in this way; they are simply emitted literally, e.g. "set key 
  1070.  \315 \\%a" causes F1 to send "\%a". 
  1071.  
  1072.  The new command: 
  1073.  
  1074.  SET KEY CLEAR 
  1075.  
  1076.  restores all default key definitions (listed below). 
  1077.  
  1078.  IMPORTANT: The key-mapping commands and command files of C-Kermit 5A(188) and 
  1079.  5A(189) don't work any more, and the instructions here supersede the ones 
  1080.  given in the OS/2 appendix of "Using C-Kermit".  In particular, the CKOVTK.INI 
  1081.  VT220 key mapping command file is superseded by the new CKOVTK2.INI file. 
  1082.  
  1083.  User-defined macros can also be assigned to keys by using their names as 
  1084.  kverbs.  Example: 
  1085.  
  1086.   define download receive, connect
  1087.   set key \417 \Kdownload
  1088.  
  1089.  This example puts the act of receiving a file from a remote Kermit that has 
  1090.  already been told to send it on a "hot key", in this case Alt-Page-Down on the 
  1091.  PC.  C-Kermit will not automatically reenter terminal emulation upon 
  1092.  completion of the macro unless the macro includes a CONNECT command, as in the 
  1093.  example above. 
  1094.  
  1095.  Keyboard verbs are of the form \Kname, where "name" is the name of the verb. A 
  1096.  keyboard verb may be written \Kname, or \K{name}.  The latter form is needed 
  1097.  when the name is adjacent to other text, for example: 
  1098.  
  1099.   set key \315 \K{decF1}0
  1100.  
  1101.  
  1102. ΓòÉΓòÉΓòÉ 2.6.2.1. Keyboard Verbs ΓòÉΓòÉΓòÉ
  1103.  
  1104. The following keyboard verbs are available.  Capitalization does not matter: 
  1105.  
  1106.  \KupArr         Send what the DEC Up Arrow key sends 
  1107.  \KdnArr         Send what the DEC Down Arrow key sends 
  1108.  \KrtArr         Send what the DEC Right Arrow key sends 
  1109.  \KlfArr         Send what the DEC Left Arrow key sends 
  1110.  \Kgold          Send what the DEC Gold key sends 
  1111.  \Kpf1           Send what the DEC PF1 key sends (same as Gold) 
  1112.  \Kpf2           Send what the DEC PF2 key sends 
  1113.  \Kpf3           Send what the DEC PF3 key sends 
  1114.  \Kpf4           Send what the DEC PF4 key sends 
  1115.  \Kkp0           Send what the DEC Numeric Keypad 0 key sends 
  1116.  \Kkp1           Send what the DEC Numeric Keypad 1 key sends 
  1117.  \Kkp2           Send what the DEC Numeric Keypad 2 key sends 
  1118.  \Kkp3           Send what the DEC Numeric Keypad 3 key sends 
  1119.  \Kkp4           Send what the DEC Numeric Keypad 4 key sends 
  1120.  \Kkp5           Send what the DEC Numeric Keypad 5 key sends 
  1121.  \Kkp6           Send what the DEC Numeric Keypad 6 key sends 
  1122.  \Kkp7           Send what the DEC Numeric Keypad 7 key sends 
  1123.  \Kkp8           Send what the DEC Numeric Keypad 8 key sends 
  1124.  \Kkp9           Send what the DEC Numeric Keypad 9 key sends 
  1125.  \KkpComa        Send what the DEC Numeric Keypad comma (,) key sends 
  1126.  \KkpMinus       Send what the DEC Numeric Keypad minus (-) key sends 
  1127.  \KkpDot         Send what the DEC Numeric Keypad period (.) key sends 
  1128.  \KkpEnter       Send what the DEC Numeric Keypad Enter key sends 
  1129.  \KdecF6         Send what the DEC F6 key sends 
  1130.  \KdecF7         Send what the DEC F7 key sends 
  1131.  \KdecF8         Send what the DEC F8 key sends 
  1132.  \KdecF9         Send what the DEC F9 key sends 
  1133.  \KdecF10        Send what the DEC F10 key sends 
  1134.  \KdecF11        Send what the DEC F11 key sends 
  1135.  \KdecF12        Send what the DEC F12 key sends 
  1136.  \KdecF13        Send what the DEC F13 key sends 
  1137.  \KdecF14        Send what the DEC F14 key sends 
  1138.  \KdecF15        Send what the DEC F15 key sends 
  1139.  \KdecHelp       Send what the DEC Help key sends (same as F15) 
  1140.  \KdecF16        Send what the DEC F16 key sends 
  1141.  \KdecDo         Send what the DEC Do key sends (same as F16) 
  1142.  \KdecF17        Send what the DEC F17 key sends 
  1143.  \KdecF18        Send what the DEC F18 key sends 
  1144.  \KdecF19        Send what the DEC F19 key sends 
  1145.  \KdecF20        Send what the DEC F20 key sends 
  1146.  \KdecFind       Send what the DEC Find key sends 
  1147.  \KdecInsert     Send what the DEC Insert key sends 
  1148.  \KdecRemove     Send what the DEC Remove key sends 
  1149.  \KdecSelect     Send what the DEC Select key sends 
  1150.  \KdecPrev       Send what the DEC Previous Screen key sends 
  1151.  \KdecNext       Send what the DEC Next Screen key sends 
  1152.  \KdnOne         Screen rollback: Down one line 
  1153.  \KdnScn         Screen rollback: Down one screen 
  1154.  \KupOne         Screen rollback: Up one line 
  1155.  \KupScn         Screen rollback: Up one screen 
  1156.  \KendScn        Screen rollback: Latest (bottom, newest) screen 
  1157.  \KhomScn        Screen rollback: Oldest (top) screen in buffer 
  1158.  \Kexit          Save the current terminal screen, exit terminal emulator, 
  1159.                  return to command prompt, but do not break the connection. 
  1160.  \Kbreak         Send a BREAK signal.  For serial connections, this is a 250 
  1161.                  millisecond spacing condition.  For TELNET conditions, this is 
  1162.                  a TELNET BREAK command. 
  1163.  \KlBreak        Send a Long BREAK (1.5 msec serial, or TELNET BREAK) 
  1164.  \KkbHebrew      Enter Hebrew keyboard mode (see Hebrew Terminal Emulation). 
  1165.  \KkbEnglish     Enter English keyboard mode. 
  1166.  \Kreset         Reset the terminal emulator. 
  1167.  \Kos2           Push to OS/2 
  1168.  \Kdos           Synonym for \Kos2. 
  1169.  \Kdump          Print screen, or copy it to a file, depending on SET PRINTER. 
  1170.  \Khangup        Hang up the connection 
  1171.  \Knull          Send a NUL (binary 0) character 
  1172.  \Khelp          Pop-up help screen 
  1173.  \KholdScrn      Hold screen 
  1174.  \Kignore        Ignore this key, don't even beep 
  1175.  \KprintFF       Send a form feed to the printer 
  1176.  \KprtScn        Toggle copy-incoming-screen-text-to-printer on and off 
  1177.  \KflipScn       Flip screen video normal/reverse 
  1178.  \Kdebug         Toggle debugging 
  1179.  \Ktn_ip         Send TELNET Interrupt Process (IP) 
  1180.  \Ktn_ayt        Send TELNET Are You There (AYT) 
  1181.  
  1182.  
  1183. ΓòÉΓòÉΓòÉ 2.6.2.2. Default Key Mapping ΓòÉΓòÉΓòÉ
  1184.  
  1185. The default mapping, which applies when C-Kermit starts up, and which is 
  1186. restored whenever you give a SET KEY CLEAR command, is as follows.  It should 
  1187. apply to almost any keyboard, and does not require the gray keypads. 
  1188.  
  1189.  Verb             IBM Key
  1190.  
  1191.   \KholdScrn       Scroll Lock             Alternate (with Num Lock off)
  1192.  
  1193.   \KupArr          Gray keypad up arrow    and Numeric keypad up arrow
  1194.   \KdnArr          Gray keypad down arrow  and Numeric keypad down arrow
  1195.   \KrtArr          Gray keypad right arrow and Numeric keypad right arrow
  1196.   \KlfArr          Gray keypad left arrow  and Numeric keypad left arrow
  1197.  
  1198.   \KupScn          Gray Page Up            and Numeric keypad PgUp
  1199.   \KupOne          Ctrl Gray Page Up       and Numeric keypad Ctrl-PgUp
  1200.   \KdnScn          Page Gray Down          and Numeric keypad PgDn
  1201.   \KdnOne          Ctrl Gray Page Down     and Numeric keypad Ctrl-PgUp
  1202.   \KhomScn         Gray Home               and Numeric keypad Home
  1203.   \KendScn         Gray End                and Numeric keypad End
  1204.  
  1205.   \Kpf1            F1
  1206.   \Kpf2            F2
  1207.   \Kpf3            F3
  1208.   \Kpf4            F4
  1209.  
  1210.   \Kkp0            Alt-0, Top Rank
  1211.   \Kkp1            Alt-1, Top Rank
  1212.   \Kkp2            Alt-2, Top Rank
  1213.   \Kkp3            Alt-3, Top Rank
  1214.   \Kkp4            Alt-4, Top Rank
  1215.   \Kkp5            Alt-5, Top Rank
  1216.   \Kkp6            Alt-6, Top Rank
  1217.   \Kkp7            Alt-7, Top Rank
  1218.   \Kkp8            Alt-8, Top Rank
  1219.   \Kkp9            Alt-9, Top Rank
  1220.  
  1221.   \KkpMinus        Alt-Minus,  Top Rank
  1222.   \KkpPeriod       Alt-Period, Main Keypad
  1223.   \KkpComa         Alt-Comma,  Main Keypad
  1224.   \KkpEnter        Alt-Enter,  Main Keypad
  1225.  
  1226.   \Kreset          Alt-r
  1227.   \Kbreak          Alt-b
  1228.   \Kexit           Alt-x
  1229.   \KlBreak         Alt-l
  1230.   \Kdump           Alt-f
  1231.   \Kflipscn        Alt-v
  1232.   \Kdebug          Alt-d
  1233.   \Khelp           Alt-h
  1234.   \Khangup         Alt-u
  1235.  
  1236. Other default assignments: 
  1237.  
  1238.   Keypad Del           sends DEL (127)
  1239.   Gray Delete          sends DEL (127)
  1240.   Backspace            sends DEL (127)
  1241.   Ctrl-Backspace       sends DEL (127)
  1242.   Alt-Backspace        sends Backspace (Ctrl-H, 8)
  1243.   Backtab (Shift Tab)  sends Backspace (Ctrl-H, 8)
  1244.   Ctrl-2               sends NUL (0)
  1245.   Ctrl-Space Bar       sends NUL (0)
  1246.   Enter                sends carriage return (CR, 13)
  1247.   Ctrl-Enter           sends linefeed (LF, 10)
  1248.  
  1249. The Alt key may be used with the numeric keypad to generate accented and 
  1250. special characters.  Hold down the Alt key and press 3 keypad digits 
  1251. representing the code of the desired character in the current PC code page, for 
  1252. example Alt-161 sends lowercase letter i with acute accent. 
  1253.  
  1254. Other keys send themselves (e.g. a, Shift-a, Ctrl-A, etc), or, if nothing is 
  1255. assigned, nothing is sent and a beep is sounded. 
  1256.  
  1257. Key names that appear in the status line and popup help screens are in 
  1258. "English", giving the keytop associated with a particular scan code on the USA 
  1259. keyboard. 
  1260.  
  1261.  
  1262. ΓòÉΓòÉΓòÉ 2.6.2.3. Arrow and Numeric Keypads ΓòÉΓòÉΓòÉ
  1263.  
  1264. The PC arrow keys are mapped to send what DEC arrow keys send.  The DEC arrow 
  1265. keys are known as the "cursor keypad", and these keys always transmit escape 
  1266. sequences on a DEC terminal.  The exact sequences depend on what "mode" the 
  1267. terminal and keypad are in: 
  1268.  
  1269.              Mode............................
  1270. Key          Application    Cursor     VT52     Kermit Verb  PC Scan code
  1271.  Up Arrow     ESC O A        ESC [ A    ESC A    \KupArr       \584
  1272.  Down Arrow   ESC O B        ESC [ B    ESC B    \KdnArr       \592
  1273.  Right Arrow  ESC O C        ESC [ C    ESC C    \KrtArr       \589
  1274.  Left Arrow   ESC O D        ESC [ D    ESC D    \KlfArr       \587
  1275.  
  1276. The first two modes can be set by either the host (ESC [ ? 1 h / l) or by the 
  1277. SET TERMINAL ARROW-KEYS { APPLICATION, CURSOR } command.  The VT52 mode can be 
  1278. set via ESC [ ? 2 l and can be reset via ESC [ ? 2 h or by ESC <, and of course 
  1279. the terminal type can also be controlled by Kermit's SET TERMINAL TYPE command. 
  1280. The default (startup) arrow-key mode is CURSOR. 
  1281.  
  1282. Of course, you can assign any other sequences you want to the arrow keys.  For 
  1283. example, to assign EMACS commands to them: 
  1284.  
  1285. set key \584 \16  ; Ctrl-P to Up Arrow
  1286. set key \592 \14  ; Ctrl-N to Down Arrow
  1287. set key \589 \6   ; Ctrl-F to Right Arrow
  1288. set key \587 \2   ; Ctrl-B to Left Arrow
  1289.  
  1290. Numeric (auxilliary) keypad keys are similar to arrow keys, in that they, too, 
  1291. send different sequences depending on the mode and the emulation: 
  1292.  
  1293.              VT1xx/2xx Mode.......   VT52 Mode...........
  1294. DEC Key      Application   Numeric   Application  Numeric  Kermit Verb
  1295.   PF1 (Gold)  ESC O P      ESC O P    ESC P        ESC P   \Kpf1,\Kgold
  1296.   PF2         ESC O Q      ESC O Q    ESC Q        ESC Q    \Kpf2
  1297.   PF3         ESC O R      ESC O R    ESC R        ESC R    \Kpf3
  1298.   PF4         ESC O S      ESC O S    ESC S        ESC S    \Kpf4
  1299.    0          ESC O p         0       ESC ? p        0      \Kkp0
  1300.    1          ESC O q         1       ESC ? q        1      \Kkp1
  1301.    2          ESC O r         2       ESC ? r        2      \Kkp2
  1302.    3          ESC O s         3       ESC ? s        3      \Kkp3
  1303.    4          ESC O t         4       ESC ? t        4      \Kkp4
  1304.    5          ESC O u         5       ESC ? u        5      \Kkp5
  1305.    6          ESC O v         6       ESC ? v        6      \Kkp6
  1306.    7          ESC O w         7       ESC ? w        7      \Kkp7
  1307.    8          ESC O x         8       ESC ? x        8      \Kkp8
  1308.    9          ESC O y         9       ESC ? y        9      \Kkp9
  1309.    -          ESC O m         -       ESC ? m        -      \KkpMinus
  1310.    ,          ESC O l         ,       ESC ? l        ,      \KkpComa
  1311.    .          ESC O n         .       ESC ? n        .      \KkpDot
  1312.  Enter        ESC O M     CR or CRLF  ESC ? M    CR or CRLF \KkpEnter
  1313.  
  1314. The Enter key Numeric-Mode assignment depends on whether the terminal 
  1315. (emulator) is in "ANSI Line Mode", which is controlled by the host via ESC [ 20 
  1316. h (Line Mode) and 
  1317. ESC [ 20 l (small letter el, No Line Mode), or by Kermit's SET TERMINAL 
  1318. NEWLINE-MODE command.  By default, the emulator is not in newline mode, and 
  1319. sends only Carriage Return (Ctrl-M, ASCII 13) when you press the Return or 
  1320. Enter key. 
  1321.  
  1322. The keypad mode is controlled by the host: ESC = puts it in Application Mode; 
  1323. ESC > puts it in Numeric Mode.  Or you can control it yourself with the SET 
  1324. TERMINAL KEYPAD-MODE command.  The default (startup) keypad state is Numeric. 
  1325.  
  1326.  
  1327. ΓòÉΓòÉΓòÉ 2.6.2.4. The Compose Key ΓòÉΓòÉΓòÉ
  1328.  
  1329. Characters that exist in Latin-1-like (Western European) character sets can now 
  1330. be entered using Compose-key sequences.  Press the Compose key (verb \Kcompose, 
  1331. assigned by default to Alt-c), then two more keys to produce the desired 
  1332. character, for example ' and A to send A-acute.  Don't hold the \Kcompose key 
  1333. down while typing the two other keys -- it does not work like a shift key.  You 
  1334. can watch your progress in the status line, and if you push the help key (Alt-h 
  1335. by default) while a compose sequence is active, you get a special help screen. 
  1336.  
  1337. If you want to cancel a compose-key sequence, just press the space bar.  If you 
  1338. enter a valid sequence, it is translated according to the terminal 
  1339. character-set and transmitted. 
  1340.  
  1341. Below is a complete listing of the valid compose-key sequences; if you enter a 
  1342. character combination that is not in this list, C-Kermit beeps and ignores it. 
  1343. Notice that case (shift key) matters for letters, but not for most symbols, and 
  1344. that in most cases, the order of the two characters doesn't matter.  The 
  1345. compose sequences supported by C-Kermit are the same as those used by DEC 
  1346. US-model VT220 terminals in "ISO" mode.  There are no "dead keys".  The full 
  1347. repertoire listed below is available only if your OS/2 code page is 850.  If 
  1348. you are using another code page (437, 852, etc), some of these characters (the 
  1349. ones that are not in your code page) might show up as question marks. 
  1350.  
  1351. Letters...
  1352.  
  1353. A `    A grave                      a `    a grave
  1354. ` A    A grave                      ` a    a grave
  1355. A '    A acute                      a '    a acute
  1356. ' A    A acute                      ' a    a acute
  1357. A ^    A circumflex                 a ^    a circumflex
  1358. ^ A    A circumflex                 ^ a    a circumflex
  1359. A ~    A tilde                      a ~    a tilde
  1360. ~ A    A tilde                      ~ a    a tilde
  1361. A "    A diaeresis                  a "    a diaeresis
  1362. " A    A diaeresis                  " a    a diaeresis
  1363. A *    A ring above                 a *    a ring above
  1364. * A    A ring above                 * a    a ring above
  1365. A E    A with E                     a e    a with e
  1366. C ,    C Cedilla                    c ,    c cedilla
  1367. , C    C Cedilla                    , c    c cedilla
  1368. E `    E grave                      e `    e grave
  1369. ` E    E grave                      ` e    e grave
  1370. E '    E acute                      e '    e acute
  1371. ' E    E acute                      ' e    e acute
  1372. E ^    E circumflex                 e ^    e circumflex
  1373. ^ E    E circumflex                 ^ e    e circumflex
  1374. E "    E diaeresis                  e "    e diaeresis
  1375. " E    E diaeresis                  " e    e diaeresis
  1376. I `    I grave                      i `    i grave
  1377. ` I    I grave                      ` i    i grave
  1378. I '    I acute                      i '    i acute
  1379. ' I    I acute                      ' i    i acute
  1380. I ^    I circumflex                 i ^    i circumflex
  1381. ^ I    I circumflex                 ^ i    i circumflex
  1382. I "    I diaeresis                  i "    i diaeresis
  1383. " I    I diaeresis                  " i    i diaeresis
  1384. - D    Icelandic Eth                - d    Icelandic eth
  1385. D -    Icelandic Eth                d -    Icelandic eth
  1386. H T    Icelandic Thorn              h t    Icelandic thorn
  1387. T H    Icelandic Thorn              t h    Icelandic thorn
  1388. N ~    N tilde                      n ~    n tilde
  1389. ~ N    N tilde                      ~ n    n tilde
  1390. O `    O grave                      o `    o grave
  1391. ` O    O grave                      ` o    o grave
  1392. O '    O acute                      o '    o acute
  1393. ' O    O acute                      ' o    o acute
  1394. O ^    O circumflex                 o ^    o circumflex
  1395. ^ O    O circumflex                 ^ o    o circumflex
  1396. O ~    O tilde                      o ~    o tilde
  1397. ~ O    O tilde                      ~ o    o tilde
  1398. O "    O diaeresis                  o "    o diaeresis
  1399. " O    O diaeresis                  " o    o diaeresis
  1400. O /    O oblique stroke             o /    o oblique stroke
  1401. / O    O oblique stroke             / o    o oblique stroke
  1402. U `    U grave                      u `    u grave
  1403. ` U    U grave                      ` u    u grave
  1404. U '    U acute                      u '    u acute
  1405. ' U    U acute                      ' u    u acute
  1406. U ^    U circumflex                 u ^    u circumflex
  1407. ^ U    U circumflex                 ^ u    u circumflex
  1408. U "    U diaeresis                  u "    u diaeresis
  1409. " U    U diaeresis                  " u    u diaeresis
  1410. Y '    Y acute                      y '    y acute
  1411. ' Y    Y acute                      ' y    y acute
  1412. s s    German sharp s               y "    y diaeresis
  1413.  
  1414. Symbols...
  1415.  
  1416. ' '    Acute accent                 U /    Micro sign
  1417. A A    At sign                      u /    Micro sign
  1418. a a    At sign                      . ^    Middle dot
  1419. / /    Backslash                    X X    Multiplication sign
  1420. / <    Backslash                    x x    Multiplication sign
  1421. | |    Broken bar                   - ,    Not sign
  1422. , ,    Cedilla                      + +    Number sign
  1423. C /    Cent sign                    S !    Paragraph sign
  1424. c /    Cent sign                    S 0    Paragraph sign
  1425. C 0    Copyright sign               S O    Paragraph sign
  1426. C O    Copyright sign               s !    Paragraph sign
  1427. c 0    Copyright sign               s 0    Paragraph sign
  1428. c o    Copyright sign               s o    Paragraph sign
  1429. X 0    Currency sign                P !    Pilcrow sign
  1430. X O    Currency sign                p !    Pilcrow sign
  1431. x 0    Currency sign                + -    Plus or minus sign
  1432. x o    Currency sign                L -    Pound sterling sign
  1433. 0 ^    Degree sign                  l -    Pound sterling sign
  1434. - :    Division sign                R O    Registered Trademark
  1435. A _    Feminine ordinal             r o    Registered Trademark
  1436. a _    Feminine ordinal             > >    Right angle quotation
  1437. 1 2    Fraction one half            ) -    Right brace
  1438. 1 4    Fraction one quarter         ) )    Right bracket
  1439. ! !    Inverted exclamation         - -    Soft hyphen
  1440. ? ?    Inverted question mark       1 ^    Superscript 1
  1441. < <    Left angle quotation         2 ^    Superscript 2
  1442. ( -    Left brace                   3 ^    Superscript 3
  1443. ( (    Left bracket                 / ^    Vertical bar
  1444. - ^    Macron                       Y -    Yen sign
  1445. O _    Masculine ordinal            y -    Yen sign
  1446. o _    Masculine ordinal
  1447.  
  1448.  
  1449. ΓòÉΓòÉΓòÉ 2.6.3. The SET TERMINAL Command ΓòÉΓòÉΓòÉ
  1450.  
  1451. The following SET TERMINAL commands have been added or modified since version 
  1452. 5A(188): 
  1453.  
  1454.  SET TERMINAL TYPE { ANSI, VT52, VT100, VT102, VT220 } 
  1455.      Allows selection of the terminal emulations listed.  VT220, VT100, and 
  1456.      ANSI are new to edit 190. 
  1457.  
  1458.      For the DEC VT family of emulations, Kermit identifies itself accordingly 
  1459.      in response to DECID or DA; SHOW TERMINAL displays current type and ID 
  1460.      string. VT100 is exactly like VT102, but without character insert/delete. 
  1461.      8-bit controls like CSI (= 155) are accepted in VT220 mode, but you must 
  1462.      SET TERMINAL BYTESIZE 8 (and, of course SET PARITY NONE) in order to use 
  1463.      them, and you must also set your terminal character set to something other 
  1464.      than TRANSPARENT or any of the IBM code pages or other sets that put 
  1465.      graphic characters in the C1 area.  C-Kermit will also send C1 controls 
  1466.      (e.g. when you push the arrow keys) if these conditions are met AND the 
  1467.      host has commanded it to do so. 
  1468.  
  1469.      The default emulation is VT220. VT220 emulation is almost fully 
  1470.      implemented (lacking mainly: ISO 2022 host-directed character-set 
  1471.      designation and invocation, downline-loadable user-defined keys, 
  1472.      downline-loadable fonts), and works well with most VMS applications, such 
  1473.      as EVE (EDIT/TPU). 
  1474.  
  1475.      NB: To use VT220 emulation with EVE or VAX Notes, you must either:  (a) 
  1476.      tell C-Kermit to SET TERMINAL BYTESIZE 8, or (b) tell VMS to SET TERM 
  1477.      /NOEIGHT. 
  1478.  
  1479.      ANSI is so-called ANSI terminal emulation, used with BBS's, a subset of 
  1480.      VT100 with several other other features added (color, etc), using the 
  1481.      8-bit IBM Code Page 437 characters for box- and line-drawing.  It is 
  1482.      approximately equivalent to the OS/2 console driver and to DOS ANSI.SYS. 
  1483.      Colors are automatically set to black on white, TERMINAL BYTESIZE is 
  1484.      automatically set to 8, TERMINAL CHARACTER-SET is forced to TRANSPARENT, 
  1485.      and your code page is set to CP437 (provided you have CP437 prepared; 
  1486.      otherwise your code page is not changed). 
  1487.  
  1488.      If you SET TERMINAL TYPE anything-but-ANSI after having SET TERMINAL TYPE 
  1489.      ANSI, your previous code page, TERMINAL BYTESIZE, COLOR, and CHARACTER-SET 
  1490.      are restored. 
  1491.  
  1492.  SET TERMINAL MOUSE { ON, OFF } 
  1493.      Enable / Disable use of the mouse during CONNECT mode.  32-bit version 
  1494.      only. 
  1495.  
  1496.  SET TERMINAL CHARACTER-SET { HEBREW-ISO, HEBREW-7, CP862, HPROMAN8 } ... 
  1497.      The Hebrew and HP character sets have been added to the terminal 
  1498.      emulator's previous repertoire.  Type SET TERMINAL CHAR ? to see a 
  1499.      complete list. 
  1500.  
  1501.  SET TERMINAL CODE-PAGE number 
  1502.      Changes the "hardware" code page (video adapter and keyboard character 
  1503.      set) used by Kermit and any processes that Kermit creates.  Typical code 
  1504.      page numbers are 437 (original US code page) and 850 (multinational code 
  1505.      page). Use SHOW TERMINAL to display the current code page and to list the 
  1506.      code pages that are available for use on your PC.  OS/2 allows only two 
  1507.      code pages to be prepared at once; this is done via the CODEPAGE statement 
  1508.      in CONFIG.SYS, for example "CODEPAGE=437,850".  If you try to prepare a 
  1509.      code page that is not supplied with your OS/2 system (for example, Hebrew 
  1510.      code page 862 on a US system) you will get an error message when the 
  1511.      system starts up.  You might be able to get around this by opening your 
  1512.      System Setup folder, executing Selective Install, and changing your 
  1513.      Country. But note that "Code pages 862 and 864 [Hebrew and Arabic] are 
  1514.      supported with a country supplement available only in certain countries", 
  1515.      and "Code pages 932, 938, 944, and 948 [Japanese, Chinese, and Korean] are 
  1516.      supported only with the DBCS version of the OS/2 operating system on DCBS 
  1517.      hardware" [from OS/2 "help codepage"]. 
  1518.  
  1519.  SET TERMINAL SCROLLBACK number 
  1520.      Size of terminal scrollback buffer.  number is how many screen lines to 
  1521.      save.  The default is 240 (10 screens if your screen length is 24). The 
  1522.      maximum is 240 for the 16-bit version and about 2,000,000 for the 32-bit 
  1523.      version.  Every 1024 lines in scrollback buffer size results in a 
  1524.      potential increase in the size of the SWAPPER.DAT file of 264k. 
  1525.  
  1526.  SET TERMINAL ROLL { ON, OFF } 
  1527.      This controls what happens when screens are rolled back.  OFF (the 
  1528.      default) means a rolled-back screen is treated just like a normal screen: 
  1529.      you can communicate with the host without affecting the rollback status -- 
  1530.      this allows you to send characters while viewing a rolled-back screen, and 
  1531.      allows arriving characters to be displayed on an "old" screen.  ON means 
  1532.      you are constrained to typing only rollback-control keys while the screen 
  1533.      is rolled back; no characters are sent to the host, and newly arrived 
  1534.      characters are displayed only after rolling forward to the bottom of the 
  1535.      rollback buffer, i.e. in their "proper place". 
  1536.  
  1537.  SET TERMINAL ANSWERBACK { OFF, ON } 
  1538.      Controls whether or not OS/2 C-Kermit's terminal emulator treats incoming 
  1539.      Ctrl-E characters as ENQ requests or simply ignores them.  ON means ENQ 
  1540.      causes C-Kermit to send an Answerback message, which is "OS/2 C-Kermit" in 
  1541.      edit 189 & earlier, and in edit 189 is "OS/2 C-Kermit <version><CR>", 
  1542.      where <version> is the numeric C-Kermit program version number, e.g. 
  1543.      501190 for version 5A(190), and <CR> is a carriage return.  OFF, the 
  1544.      default, means C-Kermit ignores Ctrl-E's.  Edit 189.  In edit 190, the 
  1545.      terminal emulation was added to the answerback string, e.g. "OS/2 C-Kermit 
  1546.      501190 VT220<CR>". 
  1547.  
  1548.  SET TERMINAL TRANSMIT-TIMEOUT seconds 
  1549.      During CONNECT mode (terminal emulation), if Kermit can't transmit your 
  1550.      keystrokes for some reason, it puts up a special status line saying 
  1551.      TRANSMISSION BLOCKED, and then shows a countdown timer.  When the 
  1552.      countdown timer expires, Kermit returns to the prompt.  This will happen, 
  1553.      for example, if you are using RTS/CTS flow control with a modem, and the 
  1554.      modem turns off its CTS signal (e.g. during retraining).  The countdown 
  1555.      timer is set to 15 seconds by default, but you can change it with SET 
  1556.      TERMINAL TRANSMIT-TIMEOUT. You can put the transmit timer on hold by 
  1557.      typing or holding down certain keys, such as the Alt key.  You can also 
  1558.      escape back to the prompt while the BLOCKED message is visible, but other 
  1559.      "hot key" functions are disabled. 
  1560.  
  1561.  SET TERMINAL OUTPUT-PACING milliseconds 
  1562.      Tells how many milliseconds to pause between sending each character to the 
  1563.      host during CONNECT mode.  This applies to keys that you type, function 
  1564.      key escape sequences, key macros, and (most importantly) to material that 
  1565.      is pasted into the terminal window, but ONLY ON SERIAL CONNECTIONS.  On 
  1566.      network connections, application-level pacing is not needed.  Use this 
  1567.      command if you see TRANSMISSION BLOCKED messages in the status line when 
  1568.      entering data; these usually indicate serial port hardware buffer 
  1569.      overruns, or if data is lost when pasting into the terminal screen.  The 
  1570.      default OUTPUT-PACING value is 0 (none).  -1 means: A 50 millisecond pause 
  1571.      between the characters generated by function keys, arrow keys, and keys 
  1572.      that have character strings assigned to them via SET KEY, but no pausing 
  1573.      otherwise.  Any number greater than zero applies to ALL characters sent to 
  1574.      the host during CONNECT mode on a serial connection.  The maximum value is 
  1575.      10000, or 10 seconds. 
  1576.  
  1577.  SET TERMINAL BELL { AUDIBLE, VISIBLE, NONE } 
  1578.      Controls handling of Control-G (BEL) characters during terminal emulation. 
  1579.      AUDIBLE sounds a short beep.  VISIBLE flashes the screen for 1/4 second. 
  1580.      NONE ignores BELs entirely.  Edit 190. 
  1581.  
  1582.  SET TERMINAL HIDE-CURSOR { ON, OFF } 
  1583.      Unless you say otherwise, C-Kermit employs a trick to make screen updates 
  1584.      faster:  The cursor disappears briefly while the screen is being updated 
  1585.      and appears again within a few milliseconds after screen activity stops. 
  1586.      Since this can be somewhat disconcerting at times, edit 190 adds a new 
  1587.      command, SET TERMINAL HIDE-CURSOR { ON, OFF } to let you turn this feature 
  1588.      off (or back on). 
  1589.  
  1590.  SET PRINTER device-or-filename 
  1591.      Where to send transparent-print or screen-copy material during CONNECT. 
  1592.      Default is PRN.  You can also specify a disk file name, in which case the 
  1593.      given file is created if it does not exist, or is appended to if it 
  1594.      already exists.  Use SET PRINTER NUL to discard transparent print output. 
  1595.      SHOW PRINTER displays the current setting.  This command does not affect 
  1596.      the PRINT command itself, which always uses the underlying OS/2 PRINT 
  1597.      command. It also does not affect the Print Screen key, since this is 
  1598.      handled by OS/2 directly, and is never seen by C-Kermit.  Edit 190. 
  1599.  
  1600.  SET DEBUG SESSION 
  1601.      Previously had no effect in OS/2 C-Kermit.  As of edit 190, this command 
  1602.      can be used to turn OS/2 C-Kermit's CONNECT command into a "software line 
  1603.      analyzer" to watch exactly what characters (or other information) is being 
  1604.      received; also can be used as a TELNET protocol analyzer: 
  1605.  
  1606.     o TELNET negotiations are written out in highlighted words 
  1607.  
  1608.     o C0 control characters (0 - 31) are displayed as the corresponding letter 
  1609.       (e.g. A for Ctrl-A), but using the underline-simulation color (SET 
  1610.       TERMINAL COLOR UNDERLINE foreground background). Carriage-Return/Linefeed 
  1611.       pairs are shown as MJ in underline color, but also start a new line on 
  1612.       the screen for readability. 
  1613.  
  1614.     o DEL (127) is displayed as a question mark with underline coloring (?). 
  1615.  
  1616.     o C1 control characters (128 - 159) are displayed literally in the current 
  1617.       code page, but using underline color 
  1618.  
  1619.     o Escape sequences are shown in reverse video. 
  1620.  
  1621.     o All other characters are shown as is.  This means that characters 32-126 
  1622.       are shown as normal ASCII graphics; 160-255 are shown as 8-bit graphics 
  1623.       in the current code page. 
  1624.  
  1625.       Note:  Incoming 8th bits are still stripped if PARITY is not NONE or if 
  1626.       TERMINAL BYTESIZE is not 8.  If you want to see parity bits, SET TERMINAL 
  1627.       BYTESIZE 8, SET PARITY NONE. 
  1628.  
  1629.  SET TERMINAL DEBUG { ON, OFF } 
  1630.      SET TERMINAL DEBUG ON is a synonym for SET DEBUG SESSION. SET TERMINAL 
  1631.      DEBUG OFF turns off session debugging without interfering with any other 
  1632.      debugging that might be active (such as LOG DEBUG; previously there was no 
  1633.      way to turn off session debugging except SET DEBUG OFF, which also closed 
  1634.      the debug log if one was open). Session debugging status is displayed in 
  1635.      the SHOW TERMINAL display. 
  1636.  
  1637.  Debug screens can be rolled back for quiet contemplation, and C-Kermit's 
  1638.  Print-Screen feature (Alt-P or <esc-char>F) can be used to record terminal 
  1639.  debugging screens (even rolled-back ones) on the printer or in a disk file, 
  1640.  but, of course, the colors and highlighting are lost. 
  1641.  
  1642.  The session debugging feature can be toggled on and off during terminal 
  1643.  emulation via Alt-D (\Kdebug), and the status is shown in the terminal-type 
  1644.  field of the status line ("DEBUG" replaces "VT102" or "VT52"). 
  1645.  
  1646.  
  1647. ΓòÉΓòÉΓòÉ 2.6.4. Using the Mouse ΓòÉΓòÉΓòÉ
  1648.  
  1649. Mouse support (edit 190, 32-bit version only): If you SET TERMINAL MOUSE ON, 
  1650. you can use the mouse during CONNECT mode in the following ways: 
  1651.  
  1652.  o Copy To Host 
  1653.  o Mark and Copy 
  1654.  o Paste To Host 
  1655.  o Terminal Cursor Positioning 
  1656.  
  1657.  C-Kermit mouse support uses the OS/2 Clipboard with one limitation.  Terminal 
  1658.  data which is "Marked and Copied" is placed into the PM Clipboard and is 
  1659.  accessible from other applications and may be "Pasted to the Host" by 
  1660.  C-Kermit.  However, C-Kermit is unable to see PM Clipboard data which was 
  1661.  placed there by applications other than C-Kermit.  This limitation is a result 
  1662.  of not being a PM application. 
  1663.  
  1664.  Non-C-Kermit data can still be pasted into a Windowed Session using the Paste 
  1665.  command on the Window System Menu. 
  1666.  
  1667.  The mouse functions are assigned to the left and right mouse buttons. Text is 
  1668.  marked using a word-processing style selection.  Kermit does not use the 
  1669.  rectangular selection used by the OS/2 VIO Window Mark command. 
  1670.  
  1671.  Copy To Host 
  1672.      Press Left and hold.  Drag the mouse to mark the text.  Press Right and 
  1673.      release.  Marked text will be copied directly to the keyboard buffer 
  1674.      (bypassing the PM clipboard) and sent to the host.  Release Left. 
  1675.  
  1676.  Mark and Copy 
  1677.      Press Left and hold.  Drag the mouse to mark the text.  Release Left. 
  1678.      Marked text will be copied to the PM Clipboard. 
  1679.  
  1680.  Paste To Host 
  1681.      Double Click Right.  Text in PM Clipboard will be copied to the keyboard 
  1682.      buffer (if it placed in the PM Clipboard by C-Kermit) and sent to the 
  1683.      host. Terminal cursor position will not be changed. 
  1684.  
  1685.  Terminal Cursor Positioning 
  1686.      Double Click Left.  Gray arrow-key sequences will be placed in the 
  1687.      keyboard buffer and sent to the host in an attempt to move the terminal 
  1688.      cursor to where the mouse cursor is. 
  1689.  
  1690.  All "copies" strip extraneous spaces from the end of each marked line. 
  1691.  
  1692.  All "pastes" strip the line terminator from the last (or only) line. 
  1693.  
  1694.  Mouse-directed cursor movements send whatever the arrow keys would have sent 
  1695.  when pressed the number of times needed to move the terminal cursor to the 
  1696.  mouse cursor location.  By default, these are the VT terminal arrow key 
  1697.  sequences, according to the current cursor keypad mode.  If you redefine the 
  1698.  arrow keys to send something else (e.g. EMACS or VI up/down/left/right 
  1699.  commands), then the mouse will send those instead.  Arrow key sequences, 
  1700.  whether sent by pressing the arrow keys or with the mouse, only have the 
  1701.  desired effect if the host application software understands them. 
  1702.  
  1703.  C-Kermit's mouse support works better when running in a Window than when 
  1704.  running fullscreen.  C-Kermit mouse support does not interfere with OS/2 Mark, 
  1705.  Copy, Paste functions on VIO Windows.  And it does not interfere with TWCP (a 
  1706.  shareware program used to provide a similar functions to VIO applications that 
  1707.  do not support a mouse). 
  1708.  
  1709.  
  1710. ΓòÉΓòÉΓòÉ 2.6.5. Printing While in CONNECT Mode ΓòÉΓòÉΓòÉ
  1711.  
  1712. The good news: 
  1713.  
  1714.  o The PRINT command works (if you have a printer). 
  1715.  o SET PRINTER filename allows transparent-print material to be redirected to 
  1716.    the specified file or device (32-bit version only). 
  1717.  o Files can be transferred to PRN in the 32-bit version only. 
  1718.  o LOG SESSION PRN works in the 32-bit version. 
  1719.  o The Print-Screen key prints the current terminal emulation screen in the 
  1720.    32-bit version.  If C-Kermit runs in a fullscreen session, Print-Screen 
  1721.    prints a text copy of the display while if C-Kermit runs in a PM window, a 
  1722.    graphical copy of the whole PM screen is printed (if your printer is capable 
  1723.    of that).  This is an OS/2 feature, having nothing to do with C-Kermit. 
  1724.  o There is also a Print-Screen/Dump-Screen feature built into C-Kermit 5A(190) 
  1725.    and later, that follows the SET PRINTER setting, for both the 16- and 32-bit 
  1726.    versions, and works with both the current screen and with rolled-back 
  1727.    screens.  This feature is activated by the CONNECT-mode escape character, 
  1728.    normally Ctrl-], followed by the letter F.  It is also accomplished by the 
  1729.    keyboard verbs, \Kdump or \KprtScn, which can be assigned to any key. 
  1730.  o The keyboard verb, \KprintFF, sends a formeed to the printer.  Most printers 
  1731.    eject the current page upon receipt of a formfeed.  Like all keyboard verbs, 
  1732.    it can be assigned to any key or key combination. 
  1733.  o Host initiated "print current cursor line" and "print current screen" are 
  1734.    supported in the 32-bit version as of version 5A(190). 
  1735.  o Host-initiated transparent print operations work correctly in the 32-bit 
  1736.    version. 
  1737.  o As of version 5A(190), VT52 printer functions are also supported. 
  1738.  
  1739.  The bad news: 
  1740.  
  1741.  o All host-initiated print operations are presently ignored by the 16-bit 
  1742.    version (because of architectural limitations). 
  1743.  o All host-initiated autoprint requests are treated like transparent print 
  1744.    requests. 
  1745.  o Print operations, when attempted on an OS/2 system that has no printer 
  1746.    installed, might hang the Kermit program.  To avoid this, use SET PRINTER to 
  1747.    direct print data to a file or to the NUL device if you don't have a 
  1748.    printer. 
  1749.  
  1750.  As of edit 190, transparent-print material no longer appears on the screen; it 
  1751.  is directed exclusively to the printer (or print file). 
  1752.  
  1753.  As of edit 190, there is a new screen copy facility.  It honors the current 
  1754.  SET PRINTER setting -- i.e. the screen material goes either to the printer or 
  1755.  to a disk file, depending on SET PRINTER (the printer by default).  To copy 
  1756.  either the current screen or a rolled-back screen use Alt-P (or Alt-p) or the 
  1757.  CONNECT-mode escape character followed by the letter F (or f).  Characters are 
  1758.  dumped or printed "plain", without attributes (bold, reverse, underline, 
  1759.  blink, colors). 
  1760.  
  1761.  Note:  In the following escape sequence listings, "ESC [" means the Escape 
  1762.  character (27) followed by a left bracket, OR, on an 8-bit connection, the CSI 
  1763.  character (155). 
  1764.  
  1765.  Other printer-control improvements: 
  1766.  
  1767.  ESC [0i         (and ESC [i) can be used to print the current screen. 
  1768.  ESC [?19h       sets the print region (for ESC [0i and ESC [i) to the whole 
  1769.                  screen. 
  1770.  ESC [?19l       sets the print region (ditto) to the current scrolling region. 
  1771.  ESC [?1i        prints the current cursor line. 
  1772.  ESC [?18h       means to send a formfeed after every print-screen operation 
  1773.  ESC [?18l       means NOT to send a formfeed after every print-screen 
  1774.                  operation 
  1775.  
  1776.  Printer control is now available in VT52 emulation also (edit 190): 
  1777.  
  1778.  ESC V           prints the current cursor line 
  1779.  ESC ]           prints the current screen 
  1780.  ESC W           starts transparent printing (also ESC ^) 
  1781.  ESC X           stops transparent printing (also ESC _) 
  1782.  
  1783.  
  1784. ΓòÉΓòÉΓòÉ 2.6.6. VT220 Emulation ΓòÉΓòÉΓòÉ
  1785.  
  1786. As of edit 190, the VT102/220 emulator supports SRM (send/receive mode) 
  1787. directives from the host: 
  1788.  
  1789.  ESC[12l   turns on local echoing 
  1790.  ESC[12h   turns off local echoing 
  1791.  
  1792.  And Kermit also now correctly responds to DECSCNM (screen mode) commands, 
  1793.  which apply to the entire current screen and subsequently received characters: 
  1794.  
  1795.  ESC[?5l   puts the whole screen in reverse video 
  1796.  ESC[?5h   puts the whole screen in normal video 
  1797.  
  1798.  And to: 
  1799.  
  1800.  ESC F     DEC arrow & function keys send only 7-bit sequences 
  1801.  ESC G     DEC arrow & function keys can send 8-bit sequences 
  1802.  
  1803.  And it also supports the following VT220-and-above escape sequences for 
  1804.  turning off character attributes selectively: 
  1805.  
  1806.  ESC[22m         turns bold off 
  1807.  ESC[24m         turns (simulated) underline off 
  1808.  ESC[25m         turns (simulated) blink off 
  1809.  ESC[27m         turns reverse video off 
  1810.  ESC[28m         turns invisible off 
  1811.  ESC[?25h        enables the cursor 
  1812.  ESC[?25l        disables the cursor 
  1813.  
  1814.  As well as the VT220 DECDSR report requests (printer status, etc). 
  1815.  
  1816.  C-Kermit's VT220 emulation lacks the following VT220 features: 
  1817.  
  1818.  o Host-directed ISO 2022 character-set designation and invocation (use the SET 
  1819.    TERMINAL CHARACTER-SET command for this). 
  1820.  
  1821.  o Protected fields (because we don't have enough attribute bits): 
  1822.  
  1823.     CSI Ps " q (Ps = 0, 1, 2) - select characters to be erasable or not 
  1824.     CSI ? Ps K (Ps = 0, 1, 2) - erase erasable characters in line 
  1825.     CSI ? Ps J (Ps = 0, 1, 2) - erase erasable characters in display 
  1826.  
  1827.  o Various host-initiated printing controls (highly dependent on DEC printers) 
  1828.  
  1829.     CSI ? 43 h/l - Large/normal characters 
  1830.     CSI ? 44 h/l - Color/monochrome 
  1831.     CSI ? 45 h/l - RGB vs HLS color system 
  1832.     CSI ? 46 h/l - Background+foreground/only-foreground to printer 
  1833.     CSI ? 47 h/l - Rotated/normal printing 
  1834.  
  1835.  o Downline-Loadable Character sets (DRCS) (graphics mode would be required) 
  1836.  
  1837.  o VT240 Tektronix, Sixel, or ReGIS graphics (graphics mode would be required) 
  1838.  
  1839.  o UDK's (can be done if there is a demand, but it might be tough finding 
  1840.    fifteen keys with unique and unused scan codes to map them to!). 
  1841.  
  1842.  
  1843. ΓòÉΓòÉΓòÉ 2.6.7. ANSI Terminal Emulation ΓòÉΓòÉΓòÉ
  1844.  
  1845. ANSI terminal emulation was added in version 5A(190).  Select it with: 
  1846.  
  1847. SET TERMINAL TYPE ANSI 
  1848.  
  1849. ANSI terminal emulation is a subset of VT100 emulation, but with 
  1850. host-controlled colors and using 8-bit IBM code-page 437 characters for line 
  1851. and box drawing, plus some unique escape sequences for cursor save/restore. 
  1852. ANSI terminal emulation is generally used to communicate with BBSs, and 
  1853. actually has nothing at all to do with ANSI (the American National Standards 
  1854. Institute); the misappropriated term "ANSI" seems to derive from the MS-DOS 
  1855. (and OS/2) ANSI.SYS console driver, itself misnamed.  C-Kermit supports ANSI 
  1856. terminal emulation as of edit 190, via SET TERMINAL TYPE ANSI.  You can find 
  1857. the specification for ANSI terminal emulation in the back of your DOS manual, 
  1858. in the ANSI.SYS appendix. 
  1859.  
  1860. C-Kermit's ANSI emulation does nothing special with the keys; in particular, 
  1861. there is no attempt at "PCTERM" keyboard handling, in which unique key-down and 
  1862. key-up sequences are transmitted separately for every single IBM key (including 
  1863. Shift, Alt, etc), apparently needed for the SCO UNIX console terminal (also 
  1864. called "DOORWAY mode)", but evidently not needed for BBS's. There is also no 
  1865. support for so-called ANSI music, which violates every conceivable rule (laid 
  1866. down by ANSI itself!) about the structure and form of escape sequences. 
  1867.  
  1868.  
  1869. ΓòÉΓòÉΓòÉ 2.6.8. Hebrew Terminal Emulation ΓòÉΓòÉΓòÉ
  1870.  
  1871. If your PC has CP862 -- the Hebrew Code Page -- available, then you can use 
  1872. OS/2 C-Kermit for VT220-level Hebrew terminal emulation.  The Hebrew Code Page 
  1873. is installed automatically when you install the Hebrew NLV of OS/2.  Use the 
  1874. following two commands to enable Hebrew terminal emulation in OS/2 C-Kermit: 
  1875.  
  1876. SET TERMINAL CODE-PAGE 862 
  1877. SET TERMINAL CHARACTER-SET { HEBREW-ISO, HEBREW-7, CP862 } 
  1878.  
  1879. (choose the character set that is appropriate for the host or service you are 
  1880. connecting to.) 
  1881.  
  1882. The following special features are available, over and above the ones listed in 
  1883. the Hebrew language support section earlier in the International Character Sets 
  1884. section of this document: 
  1885.  
  1886.  o The \KkbHebrew verb, which may be assigned to any key.  It switches the main 
  1887.    keypad (mostly the lowercase letters) into Hebrew mode (see keymap below). 
  1888.    When the keyboard is in Hebrew mode, the terminal type in the status line 
  1889.    has "-H" appended to it, for example "VT220-H". 
  1890.  
  1891.  o The \KkbEnglish verb to switch the main keypad back to English mode. 
  1892.  
  1893.  o The \KkbHebrew function is performed automatically if the host application 
  1894.    sends CSI ? 35 h, and the \KkbEnglish function with CSI ? 35 l. 
  1895.  
  1896.  o Hebrew keyboard mode is cleared when you execute the \Kreset (reset 
  1897.    terminal) function, assigned to Alt-r by default. 
  1898.  
  1899.  The Hebrew key layout associated with these verbs is NOT customizable.  It 
  1900.  follows follows the layout used by Hebrew WordPerfect, Windows, and Word. The 
  1901.  names of the Hebrew letters are from the ISO 8859-8 Standard.  These are the 
  1902.  key assignments when the keyboard is in Hebrew mode: 
  1903.  
  1904.   Hebrew Order             Roman Order              QWERTY Keyboard Order
  1905.     q = Slash                , = Taw                  q = Slash
  1906.     w = Apostrophe           . = Terminal Zade        w = Apostrophe
  1907.     ' = Comma                ' = Comma                e = Qoph
  1908.     / = Period               / = Period               r = Resh
  1909.     t = Aleph                ; = Terminal Pe          t = Aleph
  1910.     c = Bet                  a = Shin                 y = Tet
  1911.     d = Gimel                b = Nun                  u = Waw
  1912.     s = Dalet                c = Bet                  i = Terminal Nun
  1913.     v = He                   d = Gimel                o = Terminal Mem
  1914.     u = Waw                  e = Qoph                 p = Pe
  1915.     z = Zain                 f = Kaph                 a = Shin
  1916.     j = Chet                 g = Ayin                 s = Dalet
  1917.     y = Tet                  h = Yod                  d = Gimel
  1918.     h = Yod                  i = Terminal Nun         f = Kaph
  1919.     l = Terminal Kaph        j = Chet                 g = Ayin
  1920.     f = Kaph                 k = Lamed                h = Yod
  1921.     k = Lamed                l = Terminal Kaph        j = Chet
  1922.     o = Terminal Mem         m = Zade                 k = Lamed
  1923.     n = Mem                  n = Mem                  l = Terminal Kaph
  1924.     i = Terminal Nun         o = Terminal Mem         ; = Terminal Pe
  1925.     b = Nun                  p = Pe                   ' = Comma
  1926.     x = Samech               q = Slash                z = Zain
  1927.     g = Ayin                 r = Resh                 x = Samech
  1928.     ; = Terminal Pe          s = Dalet                c = Bet
  1929.     p = Pe                   t = Aleph                v = He
  1930.     . = Terminal Zade        u = Waw                  b = Nun
  1931.     m = Zade                 v = He                   n = Mem
  1932.     e = Qoph                 w = Apostrophe           m = Zade
  1933.     r = Resh                 x = Samech               , = Taw
  1934.     a = Shin                 y = Tet                  . = Terminal Zade
  1935.     , = Taw                  z = Zain                 / = Period
  1936.  
  1937.  To use OS/2 C-Kermit with host-based Hebrew software such as ALEPH (the Hebrew 
  1938.  University library software), give these commands to Kermit: 
  1939.  
  1940.   set terminal bytesize 8
  1941.   set term code-page 862
  1942.   set term character-set hebrew-iso cp862
  1943.   set key \319 \KkbHebrew      ; F5 = Enter Hebrew keyboard mode
  1944.   set key \320 \KkbEnglish     ; F6 = Enter English keyboard mode
  1945.   set key \321 \KdecF7         ; F7 = DEC F7 (used with ALEPH software)
  1946.  
  1947.  Of course, you can assign the \KkbHebrew, \KkbEnglish, and  \KdecF7  verbs to 
  1948.  any other keys of your choice. 
  1949.  
  1950.  
  1951. ΓòÉΓòÉΓòÉ 2.6.9. Screen Rollback ΓòÉΓòÉΓòÉ
  1952.  
  1953. Rollback works differently in edit 190.  Previously, you could only look at 
  1954. rolled back screens, but you couldn't do any work in them; while rolled back, 
  1955. only the rollback keys were operative.  You couldn't type any of the special 
  1956. keys, like pop-up help, or Alt-x to get back, etc, and you couldn't transmit 
  1957. any characters to the host, which was inconvenient since one often wants to be 
  1958. looking at rolled-back material when typing to the host.  Also, arriving 
  1959. characters were not displayed until unrolled all the way down to bottom.  Now, 
  1960. all of these restrictions are lifted, but you can still keep the old behavior 
  1961. if you want to: 
  1962.  
  1963. SET TERMINAL ROLL { ON, OFF } 
  1964.  
  1965. The options are OFF (the default, and the new way) and ON (the old way). The 
  1966. new way allows you to carry on a dialog with the host while in a rolled-back 
  1967. screen, which is handy when you need to refer to text that has scrolled away 
  1968. while conversing with the host.  To get the old behavior back, use SET TERMINAL 
  1969. ROLL ON. 
  1970.  
  1971.  
  1972. ΓòÉΓòÉΓòÉ 2.6.10. 132 Columns ΓòÉΓòÉΓòÉ
  1973.  
  1974. You can use 132 columns in a fullscreen session if your video adapter supports 
  1975. it.  Issue the command: 
  1976.  
  1977. MODE CO132,xx
  1978.  
  1979. (where xx is the desired screen length) at the CMD prompt, or: 
  1980.  
  1981. RUN MODE CO132,xx
  1982.  
  1983. at the C-Kermit prompt.  You can switch back to 80-column mode via: 
  1984.  
  1985. [ RUN ] MODE CO80,xx
  1986.  
  1987.  132-column mode is not supported in an OS/2 window.  Host-directed switching 
  1988. between 80- and 132-column mode is presently not supported. 
  1989.  
  1990.  
  1991. ΓòÉΓòÉΓòÉ 2.6.11. Other Terminal Emulation Changes ΓòÉΓòÉΓòÉ
  1992.  
  1993. Other OS/2 C-Kermit terminal emulation improvements and changes (edit 190): 
  1994.  
  1995.  o Many bugs relating to character attributes, rollback, etc, fixed. 
  1996.  
  1997.  o SET TERMINAL COLOR REVERSE is no longer operative; reverse video is now 
  1998.    reverse video, period - the foreground and background colors are exchanged. 
  1999.    More about this in the Questions and Answers section. 
  2000.  
  2001.  o Host-directed switching between US ASCII and UK ISO 646 (number sign / Pound 
  2002.    Sterling sign) reactivated, but only if TERMINAL CHARACTER-SET is ASCII. All 
  2003.    other character-set selections must be accomplished by SET TERMINAL 
  2004.    CHARACTER-SET commands. 
  2005.  
  2006.  o The CONNECT command now prints a helpful hint if it fails because of "No 
  2007.    carrier detected." 
  2008.  
  2009.  
  2010. ΓòÉΓòÉΓòÉ 2.6.12. Frequently Asked Questions - Terminal Emulation ΓòÉΓòÉΓòÉ
  2011.  
  2012.  Q:  I tried to CONNECT to my modem and C-Kermit popped back to the prompt 
  2013.      right away, saying "No carrier detected". 
  2014.  
  2015.  A:  C-Kermit's default handling of carrier is to not require it during 
  2016.      DIALing, but to require it at other times.  If you CONNECT to a modem 
  2017.      before you have a dialed connection, there is no carrier signal, so i/o 
  2018.      operations fail.  If you need to CONNECT to a serial device that does not 
  2019.      present the carrier signal (for example, to dial a modem "manually"), 
  2020.      first tell C-Kermit to SET CARRIER OFF. 
  2021.  
  2022.  Q:  Does C-Kermit support multiple sessions? 
  2023.  
  2024.  A:  No. If you SET PORT 1 and make a connection, and escape back and SET PORT 
  2025.      2, the connection on port 1 is closed, dropped, and hung up.  The same 
  2026.      happens for network sessions.  To achieve multiple C-Kermit sessions, run 
  2027.      separate copies in different OS/2 windows.  As of edit 190, C-Kermit will 
  2028.      put a unique identifier in the window list for each session, such as 
  2029.      "C-Kermit COM1", "C-Kermit COM2", "C-Kermit xyzcorp.com", etc. If you have 
  2030.      TCP/IP installed on your OS/2 system, you can set up a SLIP connection, 
  2031.      and then you can run multiple copies of C-Kermit over it, using C-Kermit's 
  2032.      TELNET command to make the connections.  This lets you achieve multiple 
  2033.      sessions over a single serial port, a single modem, and a single phone 
  2034.      call. 
  2035.  
  2036.  Q:  When I run C-Kermit with VT220 emulation to access either the DEC EVE 
  2037.      (EDIT/TPU) editor or DEC VAX Notes, the screen is filled with gibberish 
  2038.      like "m0lJ3l24rl6l7l8h;2'z;3'{4;H'z;H;H". 
  2039.  
  2040.  A:  Either tell C-Kermit to SET TERMINAL BYTESIZE 8 or tell VMS to SET 
  2041.      TERMINAL /NOEIGHT. 
  2042.  
  2043.  Q:  How do I get Kermit to simulate all the functions of a DEC VT220 keyboard, 
  2044.      including arrow keys, numeric keypad, Gold key, PF keys, F keys, etc? 
  2045.  
  2046.  A:  TAKE the CKOVTK2.INI file that is distributed with C-Kermit.  Read this 
  2047.      file to find out which PC key is mapped to which DEC key.  If you don't 
  2048.      like the mapping, edit this file to suit your taste.  If you always want 
  2049.      these mappings in effect, put the command "take c:\ckermit\ckovtk2.ini" in 
  2050.      your CKERMOD.INI file (or whatever your C-Kermit directory is) (Note: The 
  2051.      install script will do this for you if you say Yes.) 
  2052.  
  2053.  Q:  Key mapping does not work as described in Appendix V of Using C-Kermit 
  2054.  
  2055.  A:  That's right.  In version 5A(190) and later it works just like in MS-DOS 
  2056.      Kermit, using \Kverbs that can be assigned to any key.  See key mapping 
  2057.      for a complete description of the new key mapping method, or read the 
  2058.      material on key mapping in Using MS-DOS Kermit. 
  2059.  
  2060.  Q:  Screen rollback doesn't work the way it used to in versions 189 and 
  2061.      earlier.  I liked it better the old way! 
  2062.  
  2063.  Q:  You can use the new SET TERMINAL ROLLBACK command to restore the old 
  2064.      behavior if you want it. 
  2065.  
  2066.  Q:  The SET TERM COLOR REVERSE command is gone!  Version 190 now says "Sorry, 
  2067.      this command has been retired.  Reverse video is now accomplished simply 
  2068.      by exchanging the fore- and background colors."  I prefer the ability to 
  2069.      set reverse video to whichever color scheme I wish. 
  2070.  
  2071.  A:  The old way was simply not workable - it appeared to work only by 
  2072.      accident.  When all the VT100 features were fixed and VT220 and ANSI 
  2073.      features were added, plus the cell-coloring extensions, there was no way 
  2074.      to keep this feature.  Color is used not only for regular characters, but 
  2075.      also to denote underlining, blinking, and (naturally) also for 
  2076.      explicitly-colored characters.  So it makes no sense to have one fore- and 
  2077.      background color for reverse video.  How, for example, does one flip the 
  2078.      screen between normal video and reverse video when it has 128 different 
  2079.      colors showing if there is only one fore/background color for reverse 
  2080.      video? Note that screen-video-flipping is a required feature of VT100 and 
  2081.      higher DEC terminals (DECSCNM = ESC [ ? 5 h/l). 
  2082.  
  2083.  Q:  Reverse video doesn't always seem to actually reverse fore/background 
  2084.      colors. For example, if I have the terminal set to black on white, reverse 
  2085.      video comes out a rather muddy light gray on dark gray. If the terminal is 
  2086.      set to light gray on dark gray, reverse is black on white.  If the 
  2087.      terminal is black on light gray, reverse video really is reverse. 
  2088.  
  2089.  A:  The explanation for this is a bit technical. The video adapter stores each 
  2090.      screen character in a two-byte cell.  The first byte of each cell contains 
  2091.      the 8-bit character value.  The second byte contains the video attributes 
  2092.      for the character, and looks like this: 
  2093.  
  2094.                     Background |    Foreground
  2095.                     Color      |    Color
  2096.                +---+---+---+---+---+---+---+---+
  2097.                | b | R | G | B | i | R | G | B |
  2098.                +---+---+---+---+---+---+---+---+
  2099.                  b = blink       i = intensity
  2100.                  0 = nonblinking 0 = normal
  2101.                  1 = blinking    1 = high
  2102.  
  2103.      The i bit applies to the foreground color.  The meaning of the b bit 
  2104.      depends on the VIO state; it can mean (a) the foreground character blinks, 
  2105.      or (b) the background color is high-intensity.  C-Kermit uses (b) because 
  2106.      blinking only works in a fullscreen session.  The RGB bits select the 
  2107.      desired mixture of Red, Green, and Blue. 
  2108.  
  2109.      When video is reversed, only the colors-the RGB bits and not the i or b 
  2110.      bits are swapped.  Otherwise, we would obtain effects that are even more 
  2111.      surprising and undesirable: highlighted characters would no longer be 
  2112.      highlighted, etc.  If blinking were implemented by real blinking rather 
  2113.      than color simulation, then a bright foreground could become a blinking 
  2114.      foreground, etc.  The confusion arises because many of the colors in the 
  2115.      SET TERMINAL COLOR command are not "true" (3-bit) colors, but rather 
  2116.      effects obtained with the high-intensity bit as shown in the Table in the 
  2117.      Terminal Emulation Hints and Tips section.  If you stick to non-intense 
  2118.      colors in your terminal screen, then reverse video will work as expected. 
  2119.  
  2120.  Q:  Is it possible to quit Kermit and NOT have the phone line hung up? That 
  2121.      is, quit out of Kermit leaving the modem connection open, so I can then 
  2122.      start SLIP? 
  2123.  
  2124.  A:  No.  When an OS/2 process exits, all of its file handles are closed. One 
  2125.      of the penalties we pay for using a real operating system, as opposed to 
  2126.      (say) DOS.  It might be possible to run the SLIP process "under" Kermit. 
  2127.      It is also possible for Kermit to inherit the file descriptor of a serial 
  2128.      device from a superior process, in which case it is not closed when Kermit 
  2129.      exits. 
  2130.  
  2131.  Q:  What does "TRANSMISSION BLOCKED: 15" mean? 
  2132.  
  2133.  A:  When you are typing normal characters in CONNECT mode, C-Kermit should 
  2134.      normally have no trouble transmitting them.  An exception occurs on dialed 
  2135.      serial connections with RTS/CTS flow control when the modem might drop its 
  2136.      CTS (Clear To Send) signal because of noise on the connection that causes 
  2137.      the two modems to enter a "retraining" sequence.  If you type a character 
  2138.      under these conditions, C-Kermit will write "TRANSMISSION BLOCKED 15" in 
  2139.      the status line, and then will attempt to retransmit the character every 
  2140.      100 milliseconds for up to 15 seconds (the "15" is a countdown timer).  If 
  2141.      the countdown timer expires, C-Kermit returns to the prompt with a message 
  2142.      like: 
  2143.  
  2144.           Serial port blocked
  2145.           Tx waiting for CTS to be turned ON
  2146.  
  2147.      (the second line tells you the reason for the blockage).  Fifteen seconds 
  2148.      is usually long enough for modems to retrain, but you can increase (or 
  2149.      diminish) the retransmission timeout interval using the command: 
  2150.  
  2151.      SET TERMINAL TRANSMIT-TIMEOUT seconds 
  2152.  
  2153.      You can put the transmit timer on hold by typing or holding down certain 
  2154.      keys, such as the Alt key.  You can also escape back to the prompt while 
  2155.      the BLOCKED message is visible, but other "hot key" functions are 
  2156.      disabled. Note that the BLOCKED message might not appear right away -- 
  2157.      depending on the buffering capabilities of the UART and the configuration 
  2158.      of the OS/2 communication port driver, a transmission error might not be 
  2159.      reported back to C-Kermit by OS/2 until the second or later blocked 
  2160.      character. 
  2161.  
  2162.  
  2163. ΓòÉΓòÉΓòÉ 2.6.13. Terminal Emulation Hints and Tips. ΓòÉΓòÉΓòÉ
  2164.  
  2165. When switching away from C-Kermit's terminal screen and then switching back to 
  2166. it, certain video items might become confused: 
  2167.  
  2168.  o The cursor might be lost or misplaced 
  2169.  o The entire screen might be blinking (more about this below) 
  2170.  o The screen border might have disappeared 
  2171.  o Colors might have changed 
  2172.  
  2173.  These problems appear to be confined only to certain systems, and do not occur 
  2174.  on others.  It is believed that they are related to the particular video 
  2175.  adapter or driver; the problems are most commonly reported on SVGA and XGA 
  2176.  systems.  You can usually work around these problems in various ways: 
  2177.  
  2178.  o Use Alt-R to reset the terminal emulator 
  2179.  o Escape back to the prompt and CONNECT again 
  2180.  o Escape back to the prompt, PUSH, EXIT, and CONNECT again 
  2181.  o Escape back to the prompt, run MODE CO80 (or whatever), and CONNECT again 
  2182.  
  2183.  SET TERMINAL CODE PAGE only seems to work in fullscreen sessions.  For that 
  2184.  matter, the same seems to be true of OS/2's own CHCP program, so this is 
  2185.  apparently an OS/2 limitation (noted in OS/2 2.1 GA). 
  2186.  
  2187.  SET TERMINAL CODE PAGE (and OS/2's own CHCP program) seem to have no effect at 
  2188.  all when the Hebrew NLV is installed.  The code page simply does not change. 
  2189.  
  2190.  Shift-in/Shift-Out works only if you SET TERMINAL LOCKING-SHIFT ON (except in 
  2191.  the case of the DEC Technical Character Set, used for line- and box- drawing, 
  2192.  etc, which is handled specially). 
  2193.  
  2194.  Host-directed US/UK character-set switching (ASCII 35 interpreted as number 
  2195.  sign in US, Pound Sterling sign in UK) works only if you have SET TERM 
  2196.  CHARACTER-SET ASCII. 
  2197.  
  2198.  Under certain conditions on certain systems, OS/2 C-Kermit has been observed 
  2199.  to put the entire screen (or subsequent help screens) in blinking mode.  For 
  2200.  example, when running in a fullscreen session, CONNECT mode active, background 
  2201.  color is high-intensity, and using Alt-Esc to get to the desktop, then 
  2202.  resuming the Kermit window can produce this effect; reportedly, this is caused 
  2203.  by a bug in some of OS/2's video drivers.  Alt-R (reset) makes the blinking 
  2204.  stop.  To avoid the problem altogether, don't use high-intensity background 
  2205.  colors: 
  2206.  
  2207.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2208.   ΓöéName      ΓöéIntensity ΓöéRemarks       Γöé
  2209.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2210.   ΓöéBLACK     ΓöéNormal    Γöé              Γöé
  2211.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2212.   ΓöéBLUE      ΓöéNormal    Γöé              Γöé
  2213.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2214.   ΓöéBROWN     ΓöéNormal    Γöé              Γöé
  2215.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2216.   ΓöéCYAN      ΓöéNormal    Γöé              Γöé
  2217.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2218.   ΓöéDGRAY     ΓöéHigh      ΓöéDark gray     Γöé
  2219.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2220.   ΓöéGREEN     ΓöéNormal    Γöé              Γöé
  2221.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2222.   ΓöéLBLUE     ΓöéHigh      ΓöéLight gray    Γöé
  2223.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2224.   ΓöéLCYAN     ΓöéHigh      ΓöéLight cyan    Γöé
  2225.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2226.   ΓöéLGRAY     ΓöéNormal    Γöé              Γöé
  2227.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2228.   ΓöéLGREEN    ΓöéHigh      ΓöéLight green   Γöé
  2229.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2230.   ΓöéLMAGENTA  ΓöéHigh      ΓöéLight magenta Γöé
  2231.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2232.   ΓöéLRED      ΓöéHigh      ΓöéLight red     Γöé
  2233.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2234.   ΓöéMAGENTA   ΓöéNormal    Γöé              Γöé
  2235.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2236.   ΓöéRED       ΓöéNormal    Γöé              Γöé
  2237.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2238.   ΓöéWHITE     ΓöéHigh      Γöé              Γöé
  2239.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2240.   ΓöéYELLOW    ΓöéHigh      Γöé              Γöé
  2241.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2242.  
  2243.  
  2244. ΓòÉΓòÉΓòÉ 2.7. File Transfer ΓòÉΓòÉΓòÉ
  2245.  
  2246.  
  2247. ΓòÉΓòÉΓòÉ 2.7.1. File Transfer Recovery ΓòÉΓòÉΓòÉ
  2248.  
  2249. C-Kermit 5A(190) (the OS/2, UNIX, AOS/VS, VOS, and Amiga versions) and MS-DOS 
  2250. Kermit 3.14 have the ability to continue interrupted binary-mode file 
  2251. transfers, and also allow you to "manually" recover from certain other types of 
  2252. failures. 
  2253.  
  2254.  
  2255. ΓòÉΓòÉΓòÉ 2.7.1.1. The RESEND Command ΓòÉΓòÉΓòÉ
  2256.  
  2257. The new RESEND command lets you continue a file transfer from the point where 
  2258. it was interrupted (for example, because of a telephone disconnection) without 
  2259. having to retransmit the data that was already successfully transmitted. 
  2260. Imagine, for example, transferring a ten-megabyte file over a 2400-bps modem 
  2261. connection when, after 9 megabytes have been sent, your call-waiting feature 
  2262. kicks in and drops the modem connection.  9 megabytes at 240 cps takes about 11 
  2263. hours.  The remaining megabyte would take about 1.2 hours.  The recovery 
  2264. feature lets you complete the failed transfer in the amount of time it takes to 
  2265. send the as-yet-untranmsitted part of the file, rather than sending the entire 
  2266. file again from the beginning -- in this example, a savings of 11 hours. 
  2267.  
  2268. Before seeing how to use this feature, let's look at the restrictions: 
  2269.  
  2270.   1. Recovery works only for binary-mode transfers between computers that have 
  2271.      stream-oriented file systems (such as DOS, UNIX, OS/2, etc).  It does not 
  2272.      work with any other transfer modes, including text or labeled. In other 
  2273.      words, if you want to be able to use the recovery feature, you must tell 
  2274.      the file sender to: 
  2275.  
  2276.      SET FILE TYPE BINARY 
  2277.  
  2278.   2. The original transfer must have been done with SET FILE INCOMPLETE KEEP in 
  2279.      effect at the receiver, meaning that incompletely received files are kept 
  2280.      rather than discarded.  In C-Kermit 5A(190) and later, this is the 
  2281.      default, which is a change from previous releases. 
  2282.  
  2283.   3. Recovery only works between two Kermit programs that have this capability 
  2284.      and negotiate it successfully.  As of this writing, these programs include 
  2285.      C-Kermit 5A(190) and later for UNIX, OS/2, Stratus VOS, and the Commodore 
  2286.      Amiga, and MS-DOS Kermit 3.14 and later for DOS and Windows (read about 
  2287.      the PSEND command for a way around this). 
  2288.  
  2289.   4. You should never use SET FILE COLLISION RENAME if you intend to use the 
  2290.      recovery feature, because the partially received file will have the wrong 
  2291.      name. 
  2292.  
  2293.  To recover a failed upload: reestablish the connection, access the same 
  2294.  account and directory to which you were sending the file previously, start 
  2295.  Kermit there and put it in RECEIVE or SERVER mode.  Then escape back to the 
  2296.  local Kermit program and give it these commands: 
  2297.  
  2298.  SET FILE TYPE BINARY 
  2299.  RESEND filename [ as-name ] 
  2300.  
  2301.  The RESEND command should use exactly the same names (and SET FILE NAME 
  2302.  options) as the SEND command that was interrupted.  When you RESEND a file, 
  2303.  the receiving Kermit, upon getting the filename, looks up the file and gets 
  2304.  its size; it sends the size back to the sending Kermit, and the sending Kermit 
  2305.  resumes sending from that point; the receiving Kermit appends incoming 
  2306.  material to the partial file rather than creating a new file. 
  2307.  
  2308.  You can recover a failed download in the same way.  Just make sure you are 
  2309.  accessing the same directories as before, and the files have (or are being 
  2310.  sent with) the same names as before. 
  2311.  
  2312.  The RESEND command ignores your SET FILE COLLISION setting; thus you need not 
  2313.  change your FILE COLLISION setting when RESENDing, and you will not find it 
  2314.  altered afterwards either.  (But please, as mentioned earlier, do not use SET 
  2315.  FILE COLLISION RENAME if you ever intend to use the RESEND command.) 
  2316.  
  2317.  If the RESEND command is used, but a partial file of the same name does not 
  2318.  exist on the receiving end, RESEND behaves just like SEND -- it sends the 
  2319.  whole file.  If the file on the receiving is the same size as the sender's 
  2320.  copy, RESEND does nothing; both files are left alone.  These properties let 
  2321.  you resume the interrupted transfer of a group of files.  Suppose you had 
  2322.  originally done this: 
  2323.  
  2324.   Receiver:                         Sender:
  2325.    SET FILE INCOMPLETE KEEP          SET FILE TYPE BINARY
  2326.    RECEIVE (or SERVER)               SEND *.ZIP
  2327.  
  2328.  and the phone hung up in the middle of one of the ZIP files.  Just reestablish 
  2329.  the connection, and recover this way: 
  2330.  
  2331.   Receiver:                         Sender:
  2332.    SET FILE INCOMPLETE KEEP          SET FILE TYPE BINARY
  2333.    RECEIVE (or SERVER)               RESEND *.ZIP
  2334.  
  2335.  The files that were already sent are skipped, the file that was partially sent 
  2336.  is recovered, and the files that were not sent yet are sent. 
  2337.  
  2338.  In order for the recovery feature feature to be useful at all, the default for 
  2339.  SET FILE INCOMPLETE was changed from DISCARD to KEEP when the RESEND command 
  2340.  was added in edit 190.  Otherwise an interrupted transfer would leave no 
  2341.  partial file behind unless you had remembered to change the default.  But now 
  2342.  you have to pay closer attention to Kermit's messages to know whether a 
  2343.  transfer succeeded or failed -- previously, if it failed, the file would not 
  2344.  show up on the receiving end at all; in edit 190 and later, you'll get a 
  2345.  partial file which could easily be mistaken for the complete file unless you 
  2346.  change the default back to DISCARD or read the screen messages, or keep a 
  2347.  transaction log. 
  2348.  
  2349.  Watch out for SET FILE COLLISION RENAME, especially when used in conjunction 
  2350.  with recovery.  Recall that this option (which is NOT the default) renames the 
  2351.  incoming file if a file already exists with the same name (the default is to 
  2352.  rename the previously existing file, and store the incoming file with its own 
  2353.  name).  It is strongly recommended that you do not use SET FILE COLLISION 
  2354.  RENAME if you ever intend to use the recovery feature: 
  2355.  
  2356.  o When the file is first received by C-Kermit, its name will be changed if 
  2357.    another file already has the same name.  When you RESEND the same file after 
  2358.    a failure, C-Kermit will probably try to append the re-sent portion to the 
  2359.    wrong file. 
  2360.  
  2361.  o Assuming that you get RESEND to work with FILE COLLISION RENAME, C-Kermit, 
  2362.    when receiving the remainder of the file during a RESEND operation, will 
  2363.    report back the wrong name.  Nothing can be done about this because the name 
  2364.    is reported back before the receiving Kermit program finds out that it is a 
  2365.    recovery operation. 
  2366.  
  2367.  Using RESEND, you can write a script program to REALLY, REALLY send a file. 
  2368.  Here is a sample, in which we dial up to a UNIX computer and send the MS-DOS 
  2369.  Kermit distribution ZIP file.  This script program runs under C-Kermit 5A(190) 
  2370.  or later on OS/2 (and with a change in the dialout device name, under UNIX 
  2371.  too), and under MS-DOS Kermit 3.14 or later.  If the transfer fails, we 
  2372.  reestablish the connection and restart the transfer from the point of failure, 
  2373.  as many times as it takes to get the file across. 
  2374.  
  2375.   ---(cut here)---
  2376.   ask \%u { username: }
  2377.   askq \%p { \%u's password: }
  2378.   ;
  2379.   ; Settings for entire session.
  2380.   ;
  2381.   define \%s 20             ; Seconds to pause between each try
  2382.   define \%n 7654321        ; Phone number
  2383.   set modem hayes           ; Modem type
  2384.   set port com1             ; Communication port
  2385.   set speed 19200           ; Speed
  2386.  
  2387.   set file type binary      ; File transfer mode must be binary
  2388.   set input timeout quit    ; This is just to keep the script program short
  2389.   set count 50              ; Try up to 50 times to send the file
  2390.   goto nomsg                ; Skip message the first time
  2391.  
  2392.   :LOOP                     ; Come here to redial
  2393.   hangup                    ; Give the phone a rest
  2394.   echo CONNECTION BROKEN.
  2395.   echo Pausing for \%s seconds...
  2396.   sleep \%s
  2397.   Echo redialing...
  2398.  
  2399.   :NOMSG
  2400.   dial \%n                  ; Dial the phone number
  2401.   if fail goto AGAIN        ; Keep trying...
  2402.   output \13                ; System answered, send a carriage return
  2403.   input 15 login:           ; Get login prompt
  2404.   output \%u\13             ; Send user ID
  2405.   input 8 Password:         ; Get password prompt
  2406.   output \%p\13             ; Send password
  2407.   input 60 {$ }             ; Get system prompt
  2408.   cd /kermit                ; CD to desired source directory
  2409.   output cd mskermit\13     ; and destination directory
  2410.   input 8 {$ }              ; Get system prompt
  2411.   out kermit -r\13          ; kermit -r(eceive) on remote system
  2412.   input 10 KERMIT READY     ; Wait for READY message
  2413.   pause 1                   ; Plus a second for safety
  2414.   resend msvibm.zip         ; RESEND the file
  2415.   if success goto done      ; Success means file is completely transferred
  2416.  
  2417.   :AGAIN
  2418.   if count goto LOOP        ; Otherwise, try again.
  2419.   Stop 1 Too many tries.    ; Too many tries, give up.
  2420.  
  2421.   :DONE
  2422.   echo File transferred OK  ; Success, give message
  2423.   output exit\13            ; Log out from remote computer
  2424.   pause 5                   ; Give it time...
  2425.   hangup                    ; Hang up
  2426.   stop 0 Script succeeded   ; Finished, the end.
  2427.   ---(cut here)---
  2428.  
  2429.  
  2430. ΓòÉΓòÉΓòÉ 2.7.1.2. Manual Recovery: The PSEND Command ΓòÉΓòÉΓòÉ
  2431.  
  2432. The PSEND ("partial send") command is like the SEND command, but it begins 
  2433. sending from a specified position in the file: 
  2434.  
  2435. PSEND filename position [ as-name ] 
  2436.  
  2437. filename must refer to a single file, not a file group. position is the byte 
  2438. position in (offset into) the file; 0 means the beginning, 1000 means the 
  2439. 1001st byte.  As with the SEND command, the file is sent under its own name 
  2440. unless you specify an "as-name".  Unlike RESEND, PSEND can be used for both 
  2441. text and binary transfers, and no special capabilities are required of the 
  2442. Kermit program on the receiving end.  The PSEND command can be viewed as part 
  2443. of a "do-it-yourself" recovery feature to be used when the other Kermit program 
  2444. does not support recovery.  For example, suppose you were sending a file called 
  2445. OOFA when the connection hung up, and that the receiving Kermit program had 
  2446. been instructed to keep incompletely received files (SET FILE INCOMPLETE KEEP). 
  2447. If the transfer was in binary mode, you could note the length of the partial 
  2448. file on the receiving end; let's say it was 123456. Then tell the file receiver 
  2449. to: 
  2450.  
  2451. SET FILE COLLISION APPEND 
  2452. RECEIVE 
  2453.  
  2454. and tell the sender to: 
  2455.  
  2456. SET FILE TYPE BINARY 
  2457. PSEND OOFA 123456 
  2458.  
  2459. If the receiver does not support SET FILE COLLISION APPEND, you could just use 
  2460. PSEND to create a new file: 
  2461.  
  2462. SET FILE TYPE BINARY 
  2463. PSEND OOFA 123456 OOFA.NEW 
  2464.  
  2465. and then, after the transfer is complete, join the two pieces together on the 
  2466. receiving end, using a system command or utility. 
  2467.  
  2468.  
  2469. ΓòÉΓòÉΓòÉ 2.7.2. Control-Character Unprefixing ΓòÉΓòÉΓòÉ
  2470.  
  2471. This feature allows you to improve C-Kermit's file transfer performance on 
  2472. connections that you know are transparent to certain control characters.  It 
  2473. lets you tell C-Kermit exactly which control characters need to be prefixed and 
  2474. encoded, and which ones can be transmitted "bare" when sending files. 
  2475.  
  2476.  SET { SEND, RECEIVE } CONTROL-PREFIX code 
  2477.      Sets the control-character prefix which C-Kermit uses to the ASCII 
  2478.      character represented by the numeric code.  The code must be in the range 
  2479.      33-63 or 96-126.  Normally it is 35 (#, number sign).  SEND is the one 
  2480.      that C-Kermit should use in packets it is sending.  RECEIVE should 
  2481.      normally never be used, except to override some kind of protocol 
  2482.      negotiation foulup with a buggy commercial or shareware Kermit 
  2483.      implementation. 
  2484.      Synonym: SET { SEND, RECEIVE } QUOTE. 
  2485.  
  2486.  SET CONTROL-CHARACTER UNPREFIXED { code..., ALL } 
  2487.      Says you think it's safe to include the control character represented by 
  2488.      code without prefixing in packets which C-Kermit sends. The code is the 
  2489.      numeric ASCII code for a control character, 1-31, 127-159, or 255.  For 
  2490.      example, linefeed (code 10) is normally sent as two printable characters, 
  2491.      #J.  SET CONTROL UNPREFIXED 10 lets linefeed be sent literally.  Include 
  2492.      the word ALL to unprefix all control characters (except 0).  Or you can 
  2493.      specify a list of one or more numeric values, separated by spaces, e.g.: 
  2494.  
  2495.      SET CONTROL UNPREFIXED 2 4 5 18 20 
  2496.  
  2497.      If you can safely declare a lot of control characters to be UNPREFIXED, 
  2498.      you can send binary files (esp. precompressed ones) up to about 20-25% 
  2499.      faster. If you include a control character in this category that causes 
  2500.      trouble, however, the transfer will fail, so experimentation is necessary. 
  2501.      This command will not let you "unprefix" the NUL character (0), nor the 
  2502.      following characters if C-Kermit's current FLOW-CONTROL setting is 
  2503.      XON/XOFF: 17, 19, 145, 147.  Nor can you unprefix character 255 on a 
  2504.      TELNET connection (if C-Kermit knows it's a TELNET connection). 
  2505.  
  2506.  SET CONTROL-CHARACTER PREFIXED { code..., ALL } 
  2507.      Says that the given control character(s) must be prefixed in Kermit 
  2508.      packets.  By default, all control characters, 0-31, 127-159, and 255, are 
  2509.      prefixed. 
  2510.  
  2511.  SHOW CONTROL-PREFIXING 
  2512.      Displays the current control prefix and a table of all control-character 
  2513.      values, showing 1 for each one that will be prefixed and 0 for each one 
  2514.      that will not be prefixed. 
  2515.  
  2516.  SET REPEAT PREFIX code 
  2517.      Sets the repeat-count prefix to the ASCII character represented by the 
  2518.      numeric code.  Normally it is 126 (tilde).  The code 
  2519.  
  2520.  SET REPEAT COUNTS { OFF, ON } 
  2521.      Turns the repeat-count compression mechanism off and on.  REPEAT COUNTS 
  2522.      are ON by default.  Turn them OFF in case they cause trouble when used 
  2523.      against a faulty Kermit implementation in a shareware or commercial 
  2524.      communications program.  Or when transferring precompressed files (like 
  2525.      .ZIP or .Z files), since it is very rare to find runs of repeated 
  2526.      characters, and disabling the repeat-count mechanism frees another 
  2527.      character from prefixing, thus resulting in slightly more efficient 
  2528.      transfers. 
  2529.  
  2530.  The purpose of the SET CONTROL UNPREFIX command is to unilaterally configure 
  2531.  C-Kermit to skip prefixing and printable encoding of selected control 
  2532.  characters to achieve higher performance when sending files.  This feature 
  2533.  takes advantage of the fact that most Kermit programs will accept control 
  2534.  characters within packet data-fields literally, provided they get through at 
  2535.  all, and provided they do not have a special meaning to the receiving Kermit 
  2536.  program (such as, in many cases, the packet-start and packet-end characters). 
  2537.  
  2538.  There is no protocol negotiation between the two Kermit programs to determine 
  2539.  a "safe set" of control characters, and in fact any such negotiation would be 
  2540.  largely meaningless, because in most cases the two Kermit programs don't have 
  2541.  all the needed information.  For example, there might be a terminal server or 
  2542.  PAD between them that is sensitive to a particular control character, even 
  2543.  though the two Kermit programs are not. 
  2544.  
  2545.  If you include in your SET CONTROL UNPREFIXED list one or more control 
  2546.  characters that are unsafe, any of several things might happen: 
  2547.  
  2548.   1. Transfer of any file containing these characters will fail. 
  2549.  
  2550.   2. The receiving Kermit program might be interrupted or halted. 
  2551.  
  2552.   3. Your connection might become hung, stuck, or broken.  For example because 
  2553.      a control character causes a PAD, terminal server, modem, or similar 
  2554.      device to go from online mode to command mode. 
  2555.  
  2556.  The set of safe control characters depends on the two Kermit programs, their 
  2557.  settings, the host operating systems and their settings, the communication and 
  2558.  flow control methods, and all the devices, drivers, and protocols that lie 
  2559.  between the two Kermit programs.  Therefore, this feature is recommended only 
  2560.  for use on well-known and often-used connections, so the time invested in 
  2561.  finding an optimal unprefixed control-character set will pay off over many 
  2562.  file transfers. 
  2563.  
  2564.  You must be willing to experiment in order to achieve the optimal safe set. 
  2565.  Here is one way.  Create a short file containing all 256 possible bytes in 
  2566.  sequence and also in pairs, as well as several text strings surrounded by 
  2567.  CRLFs; for example, compile and run the following program, redirecting its 
  2568.  output to a file: 
  2569.  
  2570.   ---(cut here)---
  2571.   #include <stdio.h>
  2572.   main() {
  2573.       int i;
  2574.       puts("\r\n256-byte test pattern:\r\n");
  2575.       for (i = 0; i < 256; i++) putchar(i); /* singles */
  2576.       puts("\r\n256-double-byte test pattern:\r\n");
  2577.       for (i = 0; i < 256; i++) { putchar(i); putchar(i); } /* in pairs */
  2578.       puts("\r\nEnd of test patterns\r\n");
  2579.   }
  2580.   ---(cut here)---
  2581.  To send the file to MS-DOS Kermit from either C-Kermit or MS-DOS Kermit, try 
  2582.  the following settings: 
  2583.  
  2584.   SET CONTROL UNPREFIXED ALL ; Turn prefixing off for all but 0
  2585.   SET CONTROL PREFIXED 1     ; Turn it back on for packet-start character
  2586.   SET CONTROL PREFIXED 129   ; and 8-bit version thereof
  2587.  
  2588.  (HINT: Abbreviate SET CON U and SET CON P) 
  2589.  
  2590.  Or to send the file from MS-DOS Kermit to C-Kermit, tell MS-DOS Kermit to: 
  2591.  
  2592.   SET CON U ALL   ; Turn prefixing off for all
  2593.   SET CON P 0     ; Turn it back on for NUL
  2594.   SET CON P 3     ; and for Ctrl-C
  2595.   SET CON P 131   ; as well as Ctrl-C + parity bit
  2596.  
  2597.  Note 1:  3 and 131 normally need not be prefixed when sending to C-Kermit 
  2598.  5A(190) or later, nor to 5A(189) if you have SET TRANSFER CANCELLATION OFF. 
  2599.  
  2600.  Note 2:  1 and 129 need not be prefixed when sending files *to* C-Kermit, but 
  2601.  must be prefixed when sending files to MS-DOS Kermit. 
  2602.  
  2603.  Note 3:  13 (carriage return, the customary packet terminator) normally need 
  2604.  not be prefixed when sending files to either C-Kermit or MS-DOS Kermit, except 
  2605.  on a TELNET connection (because TELNET servers are likely to change CRLF into 
  2606.  CR). 
  2607.  
  2608.  Try to send the test file in binary mode.  If it works, fine.  If not, try 
  2609.  prefixing some of the other likely control characters (see below).  Once you 
  2610.  find the minimum set of prefixed control characters for the test file, it is 
  2611.  likely they will also work for any other file on the same connection.  Try 
  2612.  sending a large precompressed (e.g. ZIP or .Z or GZIP) file.  And, of course, 
  2613.  for maximum performance, also use a window size greater than 1 (say, 3) and a 
  2614.  packet length of 1000 or more. 
  2615.  
  2616.  Under ideal conditions (totally transparent and clean serial connection, no 
  2617.  Xon/Xoff, and C-Kermit has been told to SET TRANSFER CANCELLATION OFF, see 
  2618.  below), the minimum set of control characters that need to be prefixed is: 
  2619.  
  2620.   SENDER          RECEIVER         PREFIXED CONTROLS
  2621.    MS-DOS Kermit   MS-DOS Kermit    1 129
  2622.    MS-DOS Kermit   C-Kermit         0
  2623.    C-Kermit        MS-DOS Kermit    0 1 129
  2624.    C-Kermit        C-Kermit         0
  2625.  
  2626.  For example, to set up C-Kermit to unprefix the minimum set of prefixed 
  2627.  control characters for sending files to MS-DOS Kermit, tell C-Kermit to: 
  2628.  
  2629.   SET FLOW NONE            ; Or SET FLOW RTS/CTS
  2630.   SET CONTROL UNPREFIX ALL
  2631.   SET CONTROL PREFIX 1 129 ; C-Kermit always prefixes character 0
  2632.  
  2633.  When the mininum set doesn't work, consult this list of control characters 
  2634.  that are apt to cause trouble and are therefore likely candidates for 
  2635.  prefixing.  In particular, note that unprefixing of the packet-start character 
  2636.  (normally 1 and 129), can cause problems when sending to C-Kermit if the 
  2637.  communication link (including device input buffers) is noisy or apt to lose 
  2638.  characters. 
  2639.  
  2640.   set con p 0   ; Ctrl-@ = NUL, internal string terminator in C-Kermit.
  2641.                 ;          Also, often discarded as padding.
  2642.   set con p 1   ; Ctrl-A = Packet-start character.
  2643.   set con p 3   ; Ctrl-C = Packet breakout for remote-mode C-Kermit,
  2644.                 ;          packet breakout for server-mode MS-DOS Kermit,
  2645.                 ;          likely to cause interruptions on other systems.
  2646.   set con p 13  ; Ctrl-M = Carriage return, packet-end character.
  2647.                 ;          Always prefix on TELNET connections.
  2648.   set con p 14  ; Ctrl-N = Shift Out
  2649.   set con p 15  ; Ctrl-O = Shift In
  2650.   set con p 16  ; Ctrl-P = Commonly-used X.25/X.3 PAD escape character
  2651.   set con p 17  ; Ctrl-Q = XON, must be prefixed with Xon/Xoff flow control
  2652.   set con p 19  ; Ctrl-S = XOFF, must be prefixed with Xon/Xoff flow control
  2653.   set con p 27  ; Ctrl-[ = ESC, prefix if going through an ANSI device
  2654.   set con p 28  ; Ctrl-\ = CONNECT-mode escape for C-Kermit
  2655.   set con p 29  ; Ctrl-] = CONNECT-mode escape for TELNET
  2656.   set con p 30  ; Ctrl-^ = Cisco terminal server escape.
  2657.   set con p 127 ; Ctrl-? = DEL, often discarded as padding.
  2658.                 ;          Also becomes TELNET IAC if parity bit is added.
  2659.   set con p 128 ; = NUL    + 128 (i.e. NUL + parity bit)
  2660.   set con p 129 ; = Ctrl-A + 128
  2661.   set con p 131 ; = Ctrl-C + 128
  2662.   set con p 141 ; = CR     + 128
  2663.   set con p 145 ; = XON    + 128
  2664.   set con p 147 ; = XOFF   + 128
  2665.   set con p 255 ; 255 = TELNET IAC, must be prefixed on TELNET connections
  2666.                   INCLUDING TELNET connections through terminal servers!
  2667.  
  2668.  Note, by the way, that nothing special need be done for SLIP connections, 
  2669.  since the four special SLIP characters are in the G1 printable range: 
  2670.  
  2671.  192 SLIP END character 
  2672.  219 SLIP ESC character 
  2673.  220 SLIP END quote 
  2674.  221 SLIP ESC quote 
  2675.  
  2676.  Here is a suggested (conservative) starting point for experimenting with 
  2677.  control-character unprefixing.  Tell the file sender to: 
  2678.  
  2679.  SET CONTROL UNPREFIX ALL 
  2680.  SET CONTROL PREFIX 0 1 3 13 17 19 127 129 131 141 145 147 255 
  2681.  
  2682.  Perhaps some of these can be removed, depending on the connection, and maybe 
  2683.  others need to be added.  If you are going through a terminal server or an 
  2684.  intermediate Kermit or TELNET program, also add the appropriate escape 
  2685.  character values (bare, and plus 128). 
  2686.  
  2687.  PREFIXING NOTES: 
  2688.  
  2689.  o If C-Kermit or MS-DOS Kermit has initiated a TELNET connection, prefixing of 
  2690.    255 (TELNET IAC) is forced automatically. 
  2691.  
  2692.    IMPORTANT WARNING  When you have a TELNET connection through a terminal 
  2693.    server, neither one of the Kermit programs knows that it's a TELNET 
  2694.    connection, and in this case unprefixing of 255 is NOT automatically 
  2695.    disabled.  This can cause file transfer failures. When in doubt, do not 
  2696.    unprefix 255. 
  2697.  
  2698.  o Kermit will not let you unprefix XON (17), XOFF (19), XON+128 (145), or 
  2699.    XOFF+128 (147) if its FLOW-CONTROL setting is XON/XOFF.  If you want to 
  2700.    unprefix these, make sure *both* Kermits have first been told to SET FLOW 
  2701.    NONE (or RTS/CTS), and that XON/XOFF flow control is not in effect anywhere 
  2702.    along the communication path between the two Kermits. 
  2703.  
  2704.  o When sending files to C-Kermit 189 or earlier, and C-Kermit is in remote 
  2705.    mode, you should normally tell the file sender to SET CONTROL PREFIX 3 and 
  2706.    SET CONTROL PREFIX 131, because C-Kermit 189 and earlier (by default) takes 
  2707.    two Ctrl-C's (3 or 131) in a row as cancellation of packet-mode.  However, 
  2708.    you can UNPREFIX these characters if you know your files do not contain two 
  2709.    Ctrl-C's in a row, or if you tell C-Kermit to SET TRANSFER CANCELLATION OFF, 
  2710.    or SET TRANSFER CANCELLATION ON code number when you know that number copies 
  2711.    of code do not occur in a row in the data. When sending files to edit 190 of 
  2712.    C-Kermit and later, you can leave 3 and 131 unprefixed unless you have 
  2713.    disabled repeat-count compression. 
  2714.  
  2715.  
  2716. ΓòÉΓòÉΓòÉ 2.7.3. New RECEIVE Command Features ΓòÉΓòÉΓòÉ
  2717.  
  2718. In edit 190 and later, the RECEIVE command can accept a device or directory 
  2719. name as an argument, and all incoming files will go into the specified device 
  2720. or directory under the names they were sent with, for example: 
  2721.  
  2722. RECEIVE D: 
  2723.  
  2724. or: 
  2725.  
  2726. RECEIVE D:\BUDGET\1995 
  2727.  
  2728. If the name is not a device or directory name, it is treated as before: as a 
  2729. name under which to store the (first) incoming file.  This change also affects 
  2730. the '-a' ("as-name") command-line option. 
  2731.  
  2732. When SET FILE NAMES LITERAL is in effect, and a file arrives that is to be 
  2733. stored on a FAT (i.e. DOS) volume but its name is illegal for FAT, the file is 
  2734. no longer refused.  Instead, the file is created with a legal FAT name and the 
  2735. original name is saved in the file's Extended Attributes, so it is visible on 
  2736. the desktop and usable on HPFS volumes.  Edit 190. 
  2737.  
  2738.  
  2739. ΓòÉΓòÉΓòÉ 2.7.4. Automatic Directory Creation ΓòÉΓòÉΓòÉ
  2740.  
  2741. File names are treated according to the SET FILE NAMES command (see p.114 of 
  2742. Using C-Kermit), CONVERTED (the default) or LITERAL.  SET FILE NAMES LITERAL 
  2743. means: 
  2744.  
  2745.  o When sending files, put the filespec into the outgoing file header packet 
  2746.    exactly as the user typed it.  What happens on the receiving end is entirely 
  2747.    up to the receiver. 
  2748.  
  2749.  o When receiving files, use the file specification from the incoming file 
  2750.    header exactly as given, so if it happens to include a device or directory 
  2751.    specification, C-Kermit attempts to use it, and if the device and/or 
  2752.    directory does/do not exist or are not write-accessible, the transfer fails. 
  2753.  
  2754.  SET FILE NAMES CONVERTED, which is the default, transforms outgoing filenames 
  2755.  by (a) removing device, directory, and other "extraneous" information, (b) 
  2756.  uppercasing all lowercase letters, (c) making sure there is no more than one 
  2757.  period, and (d) translating all "uncommon" characters to X's. 
  2758.  
  2759.  A new command allows us to strike a compromise between these two methods: 
  2760.  
  2761.  SET { SEND, RECEIVE } PATHNAMES { ON, OFF } 
  2762.  
  2763.  SET SEND PATHNAMES ON means to leave pathnames ON outbound file names, which 
  2764.  is the default for compatibility with earlier behavior.  Note, however, that 
  2765.  PATHNAMES are always stripped from outbound filenames when FILE NAMES are 
  2766.  CONVERTED, and in OS/2, disk letters are always stripped. 
  2767.  
  2768.  SET SEND PATHNAMES OFF means to strip OFF path information, leaving only the 
  2769.  file's name.  SET SEND PATHNAME applies only to the filename given directly to 
  2770.  a SEND or MSEND command, and not to the "as-name", which is always sent 
  2771.  literally and without modification, regardless of SEND PATHNAME or FILE NAMES 
  2772.  settings. 
  2773.  
  2774.  SET RECEIVE PATHNAMES applies to the filenames in incoming file header 
  2775.  packets; ON means to leave the name alone and attempt to use it as-is, OFF 
  2776.  means to attempt to strip the path information ON THE ASSUMPTION that any path 
  2777.  information found there would be in the notation of the local file system, and 
  2778.  therefore recognizable.  If not, the results are unpredictable; for example, 
  2779.  if a file called MYVAX::DUA0:[OLAF.PICS]MONA_LISA.GIF;17 arrives on an OS/2 
  2780.  system, OS/2 C-Kermit can not be expected to distinguish the path information 
  2781.  from the name (it is a general principle of communication protocols that a 
  2782.  particular computer must not be expected to understand the conventions and 
  2783.  formats of some other kind of computer). 
  2784.  
  2785.  When a file arrives whose name includes a directory specification (with either 
  2786.  '/' or '\' as the directory separator), OS/2 C-Kermit will attempt to put it 
  2787.  in the specified directory. 
  2788.  
  2789.  In the 32-bit version only: If the incoming file name contains OS/2 directory 
  2790.  information (such as C:\TEXT\LETTERS\ANGRY\OOFA.TXT) -- either absolute or 
  2791.  relative, then, if the named directory, or any of its ancestors, does not 
  2792.  exist, Kermit attempts to create it (or them) before opening the output file. 
  2793.  
  2794.  For example, suppose your current directory is C:\USR\OLGA\BUDGET, and a file 
  2795.  arrives under the name AAA\BBB\CCC\DDD\BANKRUPT.TXT, and that the 
  2796.  C:\USR\OLGA\BUDGET\AAA directory already exists, but it does not have a BBB 
  2797.  subdirectory.  Then Kermit will create the BBB subdirectory, and then the CCC 
  2798.  subdirectory under BBB, and then the DDD subdirectory under CCC, and then it 
  2799.  will store the BANKRUPT.TXT file in the C:\USR\OLGA\BUDGET\AAA\BBB\CCC\DDD 
  2800.  directory. 
  2801.  
  2802.  If a non-existent or non-writable drive is specified in the directory path, 
  2803.  the directory creation will fail. 
  2804.  
  2805.  Use the SHOW FILE command to display the SEND/RECEIVE PATHNAME settings. 
  2806.  
  2807.  
  2808. ΓòÉΓòÉΓòÉ 2.7.5. IBM Mainframe File Transfer ΓòÉΓòÉΓòÉ
  2809.  
  2810. A new method is available allowing transfer of files with IBM mainframes 
  2811. through 3270 protocol converters that cannot be put into transparent mode, such 
  2812. as the 3708 and pre-B2 AEA controllers.  IBM Mainframe Kermit 4.2.4 or later is 
  2813. required.  Very briefly: 
  2814.  
  2815. Kermit-370:                C-Kermit or MS-DOS Kermit:
  2816.   SET CONTROLLER FULL
  2817.   SET RECEIVE START 62       SET RECEIVE START 62
  2818.   SET SEND START 62          SET SEND START 62
  2819.   SET BLOCK B                SET BLOCK B
  2820.   SET HANDSHAKE 0            SET HANDSHAKE NONE
  2821.  
  2822. This sets the packet-start character in both directions to be the greater-than 
  2823. sign (>) (ASCII 62) and enables a new block-check type (a 12-bit checksum 
  2824. containing no blanks) to defeat the trailing-blank-stripping feature found in 
  2825. many protocol converters.  Short packets are used automatically.  See your IBM 
  2826. Mainframe Kermit documentation for additional details. 
  2827.  
  2828.  
  2829. ΓòÉΓòÉΓòÉ 2.7.6. Pausing Between Packets ΓòÉΓòÉΓòÉ
  2830.  
  2831. The new command: 
  2832.  
  2833. SET { SEND, RECEIVE } PAUSE number 
  2834.  
  2835. tells C-Kermit to pause the given number of milliseconds (thousandths of 
  2836. seconds) before sending each packet.  This might be necessary when 
  2837. communicating with certain devices or over certain kinds of connections. Don't 
  2838. use this unless file transfers fail without it, since it slows transfers down. 
  2839. SHOW PROTOCOL displays the current setting.  SET SEND PAUSE and SET RECEIVE 
  2840. PAUSE do exactly the same thing.  Edit 190. 
  2841.  
  2842.  
  2843. ΓòÉΓòÉΓòÉ 2.7.7. Fullscreen File Transfer Display Improvements ΓòÉΓòÉΓòÉ
  2844.  
  2845. OS/2 C-Kermit now shows a file-transfer "thermometer" (percent bar-graph) to 
  2846. graphically represent the progress of the file transfer.  It can be explicitly 
  2847. selected or deselected via the new trailing argument to this command: 
  2848.  
  2849. SET FILE DISPLAY FULLSCREEN { THERMOMETER, NO-THERMOMETER } 
  2850.  
  2851. A running display of the transfer speed in characters per second (CPS) is also 
  2852. shown; it is computed as a weighted average of actual file characters 
  2853. transferred so far versus elapsed time, with progressively higher weight being 
  2854. given to the most recent time period. 
  2855.  
  2856.  
  2857. ΓòÉΓòÉΓòÉ 2.7.8. Transferring OS/2 Files with Attributes ΓòÉΓòÉΓòÉ
  2858.  
  2859. Edit 190 also adds support for SET FILE TYPE LABELED, as in the VMS version of 
  2860. C-Kermit.  This allows OS/2 files to be transferred with all their extended 
  2861. attributes intact-desktop material, icons, long file names on FAT partitions, 
  2862. etc.  Consult the VMS appendix of Using C-Kermit for information on labeled 
  2863. file transfer.  Briefly, the idea is that an OS/2 file can be transferred from 
  2864. one OS/2 system to another with all its extended attributes intact.  It can 
  2865. also be transferred to an intermediate (non-OS/2) system for archival, and 
  2866. later transferred to another OS/2 system and restored to its original form.  An 
  2867. OS/2-specific SET FILE LABEL command is also provided for controlling how 
  2868. regular OS/2 file attributes are handled in labeled file transfers: 
  2869.  
  2870. SET FILE LABEL {ARCHIVE, READ-ONLY, HIDDEN, SYSTEM, EXTENDED} {ON, OFF} 
  2871.  
  2872. By default, all but ARCHIVE are ON.  All of a file's attributes are always 
  2873. transmitted; this command tells the file receiver whether to pay attention to 
  2874. them (ON) or not (OFF).  Use SHOW LABELED-FILE-INFO to display the values of 
  2875. these settings. 
  2876.  
  2877.  
  2878. ΓòÉΓòÉΓòÉ 2.7.9. Transferring OS/2 Directory Trees ΓòÉΓòÉΓòÉ
  2879.  
  2880. Using the new REXX interface C-Kermit provides a XSEND command similar to that 
  2881. provided for years with MS-DOS Kermit.  The syntax is: 
  2882.  
  2883. XSEND path filespec 
  2884.  
  2885. For example: 
  2886.  
  2887. XSEND C:\ * 
  2888.  
  2889. (note the space between the path and the filespec). 
  2890.  
  2891. XSEND traverses the directory tree indicated by the path and sends all files 
  2892. matching the filespec to another computer.  To send an entire drive (desktop) 
  2893. from one OS/2 machine to another: 
  2894.  
  2895.  o Place the remote PC's C-Kermit into server mode. 
  2896.  o Issue the REMOTE SET FILE TYPE LABELED command to the local PC's Kermit. 
  2897.  o Change the current working directory on the remote machine to where you want 
  2898.    the files to be sent by giving a REMOTE CD command. 
  2899.  o Issue an XSEND command on the local PC. 
  2900.  
  2901.  The entire directory tree will be replicated on the remote system including 
  2902.  the Extended Attributes. 
  2903.  
  2904.  
  2905. ΓòÉΓòÉΓòÉ 2.7.10. File Transfer Hints and Tips ΓòÉΓòÉΓòÉ
  2906.  
  2907. Some communication software claims to implement sliding windows, but does so 
  2908. incorrectly.  If sliding window transfers fail, set C-Kermit's window size to 
  2909. the smallest one that works, for example: 
  2910.  
  2911. SET WINDOW 1
  2912.  
  2913. There is no way send the complete contents of a file in text mode if the file 
  2914. contains a Ctrl-Z character that is not the last character in the file.  In 
  2915. other words, Ctrl-Z is always treated as end-of-file when the FILE TYPE is set 
  2916. to TEXT. 
  2917.  
  2918. SET FILE COLLISION UPDATE has the following peculiarity: On FAT (i.e. DOS) file 
  2919. systems, a file's date/time is recorded with a granularity of 2 seconds, 
  2920. whereas on most other kinds of file systems (UNIX, VMS, OS/2 HPFS, etc), it is 
  2921. recorded to at least the exact second.  Thus when OS/2 C-Kermit records the 
  2922. timestamp of an incoming file, the "one's place" of its time is truncated.  If 
  2923. it was an odd number, therefore, it will be one second "older" than the 
  2924. date/time of the original file.  Downloading the same file again with SET FILE 
  2925. COLLISION UPDATE would result in a second, unnecessary transfer of the file, 
  2926. since the remote file would appear to be newer than the local file. Therefore, 
  2927. OS/2 C-Kermit, when making this comparison, will treat two times as equal if 
  2928. (a) the local file's time is an even number, (b) the remote time is equal to 
  2929. (of course) or exactly one second greater than the local time, and (c) the 
  2930. local file system is FAT. 
  2931.  
  2932.  
  2933. ΓòÉΓòÉΓòÉ 2.8. New Client/Server Features ΓòÉΓòÉΓòÉ
  2934.  
  2935.  
  2936. ΓòÉΓòÉΓòÉ 2.8.1. New REMOTE Commands ΓòÉΓòÉΓòÉ
  2937.  
  2938. The following features are all new to edit 190. 
  2939.  
  2940.  REMOTE PWD 
  2941.      Allows the client to ask for the server's current directory in 
  2942.      system-independent way.  Formerly, this could only be done via system- 
  2943.      dependent REMOTE HOST commands.  The response is displayed on the screen. 
  2944.  
  2945.  REMOTE SET FILE TYPE { TEXT, BINARY, LABELED } 
  2946.      The LABELED option has been added to this command in the VMS and OS/2 
  2947.      versions only.  Also, the file type specified in this command also takes 
  2948.      effect locally.  Previously, it was only sent to the server.  Edit 190. 
  2949.  
  2950.  REMOTE QUERY { KERMIT, SYSTEM, USER } name 
  2951.      Asks the server to send the value of the variable of the given type that 
  2952.      has the given name.  If the query succeeds, the value is displayed on your 
  2953.      screen and it is also stored in a local read-only Kermit variable, 
  2954.      \v(query) If the query fails, an error message is printed and the 
  2955.      \v(query) variable is set to the empty string. 
  2956.  
  2957.      In C-Kermit and MS-DOS Kermit, "KERMIT" variables are the \v(name) kind, 
  2958.      such as \v(time), \v(version), \v(date), etc.  "SYSTEM" variables are DOS 
  2959.      or UNIX environment variables, such as PATH, USER, HOME, or VMS logical 
  2960.      names, etc.  USER variables are everything else -- \%a-z, \%1-9, and macro 
  2961.      names used as long variable names. 
  2962.  
  2963.      The name of a KERMIT or SYSTEM variable must be given in an 
  2964.      implementation-independent format without special syntax, e.g. TIME, DATE, 
  2965.      VERSION, PATH, USER, etc, rather than (say) \v(time), \$(PATH).  However, 
  2966.      in most cases, case matters in system variables.  The <name> of a USER 
  2967.      variable is given in the syntax of the server, e.g. \%a.  Examples: 
  2968.  
  2969.           C-Kermit> remote query kermit time
  2970.           13:25:18
  2971.           C-Kermit> echo The server's time is: \v(query)
  2972.           The server's time is: 13:25:18
  2973.           C-Kermit>rem q k dir ; Note, abbreviations allowed.
  2974.           /usr/olga/letters
  2975.           C-Kermit>echo The server's current directory is: \v(query)
  2976.           The server's current directory is: /usr/olga/letters
  2977.           C-Kermit>rem q system USER
  2978.           olga
  2979.           C-Kermit>echo user = \v(query)
  2980.           user = olga
  2981.  
  2982.  REMOTE ASSIGN name [ value ] 
  2983.      Asks the server to assign the given value to the remote user variable 
  2984.      denoted by name.  The value is fully evaluated LOCALLY before being sent 
  2985.      to the Kermit server.  The maximum length for the value is governed by the 
  2986.      maximum negotiated packet length, i.e. the server's RECEIVE PACKET-LENGTH. 
  2987.      Synonym: REMOTE ASG. 
  2988.      Examples: 
  2989.  
  2990.           C-Kermit>remote assign \%a \v(time) ; Client's time to server's \%a
  2991.           C-Kermit>remote query user \%a
  2992.           13:41:18                            ; This is the client's time
  2993.           C-Kermit>rem asg myname Olga        ; My name to server
  2994.      To force a string corresponding to a local variable name to be sent 
  2995.      literally, use two backslashes: 
  2996.  
  2997.           C-Kermit>remote assign \%a \\v(time) ; "\v(time)" to server's \%a.
  2998.           C-Kermit>remote query user \%a
  2999.           13:41:18                             ; This is the server's time.
  3000.           C-Kermit>
  3001.  
  3002.  You can disable and enable the server's handling of REMOTE QUERY and ASSIGN 
  3003.  with the commands: 
  3004.  
  3005.  DISABLE QUERY       The server should not respond to REMOTE QUERY commands 
  3006.  DISABLE ASSIGN      The server should not respond to REMOTE ASSIGN commands 
  3007.  ENABLE QUERY        The server should respond to REMOTE QUERY commands 
  3008.  ENABLE ASSIGN       The server should respond to REMOTE ASSIGN commands 
  3009.  
  3010.  By default, like all other ENABLE/DISABLE items, the initial state is ENABLEd. 
  3011.  
  3012.  
  3013. ΓòÉΓòÉΓòÉ 2.8.2. "WHATAMI" - Making Kermit GET more like FTP GET ΓòÉΓòÉΓòÉ
  3014.  
  3015. Those who are accustomed to using client/server applications such as FTP expect 
  3016. that certain kinds of commands, when given to the client, will affect the 
  3017. server correspondingly.  Most notable among these commands (in FTP's case) are 
  3018. those that set the transfer mode: BINARY, ASCII, etc. 
  3019.  
  3020. In Kermit, however, the transfer mode has always been determined by the file 
  3021. sender, a concept totally unrelated to the client/server distinction, and less 
  3022. than obvious to most people.  Furthermore, Kermit programs do not always have a 
  3023. client/server relationship -- there is also the send/receive arrangement. 
  3024.  
  3025. C-Kermit 5A(190) and MS-DOS Kermit 3.14 implement a new "What Am I" feature, 
  3026. which operates transparently to the user (i.e. there are no commands to control 
  3027. it), and results in FTP-like operation when: 
  3028.  
  3029.   1. One Kermit program is in SERVER mode, the other is a client, AND: 
  3030.  
  3031.   2. Both Kermit programs support the WHATAMI feature.  Currently, these are 
  3032.      limited to C-Kermit 5A(190), MS-DOS Kermit 3.14, and IBM Mainframe Kermit 
  3033.      4.3.1. 
  3034.  
  3035.  Presently, the WHATAMI feature affects only the GET command, and addresses the 
  3036.  following scenario: 
  3037.  
  3038.   1. User starts a Kermit server, giving it no special settings. 
  3039.  
  3040.   2. User tells the client to: 
  3041.  
  3042.      SET FILE TYPE BINARY 
  3043.      SET FILE NAMES LITERAL 
  3044.      GET cko190.zip 
  3045.  
  3046.   3. The file is transferred in text mode when the user expected a binary 
  3047.      transfer, and the name was converted even though the user wanted it not to 
  3048.      be changed. 
  3049.  
  3050.  At the beginning of any protocol transaction, the two Kermits exchange "What 
  3051.  Am I" information as part of the S or I packet data.  This information 
  3052.  includes (a) whether I am a client or server; (b) my transfer mode (text or 
  3053.  binary); and (c) my file name handling (literal or converted). 
  3054.  
  3055.  Then, when the server receives a GET-command packet from the client, AND if 
  3056.  WHATAMI information has been successfully exchanged, then the server switches 
  3057.  its file transfer mode and file name handling to the client's corresponding 
  3058.  modes.  Nothing special happens when files are sent TO the server, since this 
  3059.  works right anyway, using the previous mechanisms. 
  3060.  
  3061.  Hopefully this change will result in more pleasant surprises than unpleasant 
  3062.  ones.  One Beta tester (a seasoned Kermit user), however, was unpleasantly 
  3063.  surprised when he sent the following commands from a client to a server: 
  3064.  
  3065.  REMOTE SET FILE TYPE BINARY 
  3066.  GET OOFA.ZIP 
  3067.  
  3068.  The file arrived in text mode because the client was in text mode.  The user 
  3069.  was relying of the old rule, by which the file sender informs the file 
  3070.  receiver of the transfer mode via the attribute packet, but since the WHATAMI 
  3071.  exchange took place after the REMOTE SET, it changed the server's mode back to 
  3072.  text.  To cure this situation, REMOTE SET FILE TYPE now sets the local file 
  3073.  transfer mode too. 
  3074.  
  3075.  Should all this sound confusing, remember that the WHATAMI feature (and the 
  3076.  other mechanisms for reconciling file transfer mode) make a difference only 
  3077.  when the sender and receiver's file transfer modes do not agree.  The rules 
  3078.  can be summarized like this: 
  3079.  
  3080.   1. To be certain of the file transfer mode, give the same SET FILE TYPE 
  3081.      command to both Kermits (exception: when VMS C-Kermit is sending a file, 
  3082.      it determines the transfer mode for each file automatically). 
  3083.  
  3084.      In case you did not do this, and the transfer modes of the two Kermit 
  3085.      programs disagree when the file transfer starts: 
  3086.  
  3087.   2. If the file sender is VMS C-Kermit, it determines the file type 
  3088.      automatically unless its file type has been set to IMAGE or LABELED. 
  3089.      Otherwise: 
  3090.  
  3091.   3. If both Kermits have the WHATAMI feature, the client program's transfer 
  3092.      mode prevails.  Otherwise: 
  3093.  
  3094.   4. If both Kermit programs have Attribute-packet capability, the sender will 
  3095.      inform the receiver of the transfer mode, and the receiver will switch to 
  3096.      the sender's transfer mode automatically.  Otherwise: 
  3097.  
  3098.   5. The transfer proceeds with each Kermit program using the transfer mode 
  3099.      that the user has told it to use.  This can result in mismatches, which 
  3100.      are usually not what was intended. 
  3101.  
  3102.  Since not all Kermit implementations -- particularly those found in commercial 
  3103.  or shareware software packages -- implement the WHATAMI feature or Attribute 
  3104.  packets, it is always safest to inform both Kermit programs of the transfer 
  3105.  mode prior to file transfer. 
  3106.  
  3107.  
  3108. ΓòÉΓòÉΓòÉ 2.9. International Character Sets ΓòÉΓòÉΓòÉ
  3109.  
  3110. Since Using C-Kermit was published: 
  3111.  
  3112.  o Edit 189 of C-Kermit added support for Hebrew character sets. 
  3113.  o Edit 190 added Hebrew terminal emulation to OS/2 C-Kermit. 
  3114.  o Edit 190 added support for the Hewlett-Packard Roman8 character set. 
  3115.  
  3116.  
  3117. ΓòÉΓòÉΓòÉ 2.9.1. Hebrew Character Sets ΓòÉΓòÉΓòÉ
  3118.  
  3119. C-Kermit 5A(189) has the following new commands for Hebrew file transfer: 
  3120.  
  3121.  SET TRANSFER CHARACTER-SET HEBREW-ISO: ISO 8859-8 Latin/Hebrew Alphabet 
  3122.  SET FILE CHARACTER-SET HEBREW-ISO:    ISO 8859-8 Latin/Hebrew Alphabet 
  3123.  SET FILE CHARACTER-SET CP862:         Hebrew PC Code Page 
  3124.  SET FILE CHARACTER-SET HEBREW-7:      DEC 7-Bit (VT100) Hebrew 
  3125.  
  3126.  These commands work just like the corresponding commands for Cyrillic 
  3127.  character sets, described in Chapter 9 of Using C-Kermit  When receiving 
  3128.  files, C-Kermit recognizes Hebrew files automatically if the file sender tags 
  3129.  the file as Hebrew in the Attribute packet, which the file sender should do if 
  3130.  it has been given the SET TRANSFER CHARACTER-SET HEBREW command; C-Kermit does 
  3131.  not, however, switch automatically to a Hebrew file character-set, so you must 
  3132.  choose one in advance if that's what you want.  The tag is "I6/138" (these are 
  3133.  ISO registration numbers).  When sending files in Hebrew mode, of course, 
  3134.  C-Kermit includes the same tag. 
  3135.  
  3136.  An invertible translation table between Latin/Hebrew and CP862 is used during 
  3137.  both terminal emulation and file transfer.  The translation table between 
  3138.  Hebrew-7 and Latin/Hebrew, however, is not invertible because these character 
  3139.  sets are different sizes. 
  3140.  
  3141.  Here is an example of uploading a Hebrew file from a PC to UNIX.  The PC 
  3142.  version is coded in the Hebrew PC code page, and the UNIX version is to be 
  3143.  stored in the 7-bit Hebrew character-set so it can be sent as network e-mail: 
  3144.  
  3145.   UNIX> set file character-set hebrew-7 ; I want 7-bit text for email
  3146.   UNIX> receive                         ; Wait for the file.
  3147.   Alt-X                                 ; Escape back to the PC
  3148.   OS/2> set file type text              ; Make sure we are in text mode
  3149.   OS/2> set file character-set cp862    ; File is in Hebrew PC code page
  3150.   OS/2> set xfer character-set hebrew   ; Send using ISO Latin/Hebrew
  3151.   OS/2> send rab.oof                    ; Send the file
  3152.  
  3153.  The file sender automatically tells the file receiver that the transfer 
  3154.  character-set is Hebrew. 
  3155.  
  3156.  The three Hebrew character sets are also available for use in C-Kermit's 
  3157.  TRANSLATE command, which translates a local file from one character-set to 
  3158.  another.  Thus you can use C-Kermit to convert a local file from, say, 
  3159.  Latin/Hebrew to Hebrew-7. 
  3160.  
  3161.  C-Kermit's Hebrew file transfer features can be used in conjunction with 
  3162.  MS-DOS Kermit 3.13 and later (with which C-Kermit shares the same translation 
  3163.  tables to ensure consistent translations) and IBM Mainframe Kermit 4.2 or 
  3164.  later, which translates between Latin/Hebrew and IBM CECP 424 (the Hebrew 
  3165.  EBCDIC Country Extended Code Page).  Hebrew character-set translation is 
  3166.  enabled during terminal emulation via the command: 
  3167.  
  3168.  SET TERMINAL CHARACTER-SET { HEBREW-ISO, HEBREW-7, CP862 } [ local-cset ] 
  3169.  
  3170.  The terminal character-set affects not only CONNECT mode, but also the session 
  3171.  log and the TRANSMIT command. 
  3172.  
  3173.  Please refer to the section on Hebrew Terminal Emulation for additional 
  3174.  details. 
  3175.  
  3176.  
  3177. ΓòÉΓòÉΓòÉ 2.9.2. The Hewlett Packard Roman8 Character Set ΓòÉΓòÉΓòÉ
  3178.  
  3179. C-Kermit 5A(190) adds support for Hewlett Packard ROMAN8 as a file 
  3180. character-set and a terminal character-set.  This is an 8-bit character-set 
  3181. roughly equivalent, but not identical, to Latin-1, and (of course) with 
  3182. entirely different encoding.  The translations between HP ROMAN8 and Latin-1 
  3183. are invertible.  Commands: 
  3184.  
  3185. SET FILE CHARACTER-SET HP-ROMAN8 
  3186. SET TERMINAL CHARACTER-SET HP-ROMAN8 
  3187.  
  3188.  
  3189. ΓòÉΓòÉΓòÉ 2.10. Script Programming ΓòÉΓòÉΓòÉ
  3190.  
  3191.  
  3192. ΓòÉΓòÉΓòÉ 2.10.1. New IF Commands ΓòÉΓòÉΓòÉ
  3193.  
  3194.  IF DIRECTORY name succeeds if name is the name of a directory or a 
  3195.      file-structured device, fails otherwise.  Edit 190. 
  3196.  
  3197.  IF NEWER file1 file2 compares modification (or creation) date/times of two 
  3198.      files, succeeds if first file is newer than second file.  Edit 190. 
  3199.  
  3200.  IF REMOTE-ONLY succeeds if C-Kermit was started with the -R (uppercase) 
  3201.      command-line option, fails otherwise.  This lets you advise C-Kermit that 
  3202.      you only intend to use it in remote mode (which rarely, if ever, applies 
  3203.      to OS/2 C-Kermit). 
  3204.  
  3205.  IF EQUAL, IF LLT, IF LGT string comparison commands, as of edit 190, allow the 
  3206.      use of braces around comparands that contain imbedded spaces, for example: 
  3207.  
  3208.           IF EQUAL \%a {sentence with four words} echo They are equal.
  3209.  
  3210.      Prior to edit 190, constructions like this would cause a parse error (see 
  3211.      p.239, Using C-Kermit ). 
  3212.  
  3213.  
  3214. ΓòÉΓòÉΓòÉ 2.10.2. New \v() Variables ΓòÉΓòÉΓòÉ
  3215.  
  3216. The following built-in variables have been added since Using C-Kermit was 
  3217. published: 
  3218.  
  3219.  \v(charset)     C-Kermit's local character set.  Use this (e.g.) in scripts 
  3220.                  for deciding which character set to use when printing screen 
  3221.                  messages. 
  3222.  
  3223.  \v(connection)  When C-Kermit has made a SET LINE or SET HOST connection, this 
  3224.                  variable tells the connection type: "serial", "tcp/ip_telnet", 
  3225.                  "decnet_lat", "netbios", etc. If C-Kermit is in remote mode -- 
  3226.                  i.e. it has not made a connection to another computer -- the 
  3227.                  value of this variable is "remote". 
  3228.  
  3229.  \v(cps)         gives speed in characters (bytes) per second of the most 
  3230.                  recent file transfer.  If a group of files was transferred, 
  3231.                  the figure applies to the whole group. 
  3232.  
  3233.  \v(dialstatus)  contains a numeric result code for the most recent DIAL 
  3234.                  command: 
  3235.  
  3236.     -1  No DIAL command given yet 
  3237.      0  DIAL succeeded 
  3238.      1  Modem type not specified 
  3239.      2  Communication device not specified 
  3240.      3  Device can't be opened 
  3241.      4  Communication speed not specified 
  3242.      5  Hangup failure 
  3243.      6  Internal error (memory allocation, etc) 
  3244.      7  Device input/output error 
  3245.      8  DIAL TIMEOUT expired 
  3246.      9  Dialing interrupted by user 
  3247.     10  Modem not ready 
  3248.     11-19 (reserved) 
  3249.     20  Modem command error 
  3250.     21  Failure to initialize modem 
  3251.     22  Phone busy 
  3252.     23  No carrier 
  3253.     24  No dialtone 
  3254.     25  Ring (incoming call) 
  3255.     26  No answer 
  3256.     27  Disconnected 
  3257.     28  Answered by voice 
  3258.     29  Access denied, forbidden call 
  3259.     98  Unknown error 
  3260.     99  Unspecified failure detected by modem 
  3261.  
  3262.  \v(evaluate)    result of most recent EVALUATE command. 
  3263.  
  3264.  \v(ftype)       current FILE TYPE setting: "text" or "binary".  In OS/2 and 
  3265.                  VMS, also "labeled".  In VMS only, also "image". 
  3266.  
  3267.  \v(keyboard)    the keyboard model: "88", "101", or "122". 
  3268.  
  3269.  \v(modem)       current modem type (SET MODEM value). 
  3270.  
  3271.  \v(parity)      current PARITY setting: "even", "odd", "mark", "none", or 
  3272.                  "space". 
  3273.  
  3274.  \v(newline)     is the newline character or sequence appropriate to the 
  3275.                  operating system where C-Kermit is running, for example 
  3276.                  linefeed (\10) for UNIX, carriage return (\13) for OS-9, 
  3277.                  carriage-return linefeed (\13\10) for OS/2. 
  3278.  
  3279.  \v(minput)      a number telling which MINPUT search string was matched: 0 = 
  3280.                  none of them; 1 = the first one, etc. (see section on MINPUT 
  3281.                  below). 
  3282.  
  3283.  \v(rexx)         (OS/2 32-bit only) the return value from the last REXX 
  3284.                  command issued. 
  3285.  
  3286.  \v(rows)        the number of rows (lines) on the console terminal / screen, 
  3287.                  i.e. its length, -1 if unknown. 
  3288.  
  3289.  \v(cols)        the number of columns on the console terminal / screen, i.e. 
  3290.                  its width, -1 if unknown.. 
  3291.  
  3292.  \v(terminal)    terminal type, if known, otherwise "unknown". 
  3293.  
  3294.  \v(query)       the result of most recent REMOTE QUERY command. 
  3295.  
  3296.  \v(space)       number of free bytes on current storage device (OS/2 only). 
  3297.  
  3298.  \v(startup) (OS/2 only) Disk:Directory from which C-Kermit was started. 
  3299.  
  3300.  \v(sysid)       Kermit system/OS code, from pp.275-278 of the Kermit book: 
  3301.  
  3302.                                   U8 = MS-DOS (and Windows)
  3303.                                   U1 = UNIX
  3304.                                   D7 = VMS
  3305.                                   UD = OS-9
  3306.                                   L3 = Amiga
  3307.                                   A3 = Macintosh
  3308.                                   UO = OS/2
  3309.                                   F3 = AOS/VS
  3310.                                   K2 = Atari ST
  3311.                                   MV = Stratus VOS
  3312.                                   etc...
  3313.  
  3314.  
  3315. ΓòÉΓòÉΓòÉ 2.10.3. New \f() Functions ΓòÉΓòÉΓòÉ
  3316.  
  3317. The following functions were added since publication of Using C-Kermit: 
  3318.  
  3319.  \Fdate(filename) returns the modification (or creation) date of the given file 
  3320.      in "yyyymmdd hh:mm:ss" format, or else the empty string upon failure. 
  3321.      Edit 190. 
  3322.  
  3323.  \Freplace(s1,s2,s3). This function replaces all occurrences of the string s2 
  3324.      in the string s1 by the string s3.  s1 and s2 must be at least one 
  3325.      character long.  s3 can be omitted, in which case all occurrences of s2 
  3326.      are removed from s1.  If s2 is omitted, s1 is returned unchanged. 
  3327.      Examples: 
  3328.  
  3329.           \freplace(oofa,o,O)  = OOfa
  3330.           \freplace(oofa,o,oo) = oooofa
  3331.           \freplace(oofa,o)    = fa
  3332.           \freplace(oofa)      = oofa
  3333.  
  3334.      or (more practically for OS/2): 
  3335.  
  3336.           \freplace(\v(cmdfile),\\,/) ; replace back- by forward slashes
  3337.  
  3338.  \Fsize(filename) tells the size, in characters (bytes), of the given file. 
  3339.  
  3340.  
  3341. ΓòÉΓòÉΓòÉ 2.10.4. INPUT and OUTPUT Command Improvements ΓòÉΓòÉΓòÉ
  3342.  
  3343. As of edit 190, the INPUT and OUPUT commands are buffered, which results in 
  3344. greater speed of execution. 
  3345.  
  3346. The new command: 
  3347.  
  3348. SET OUTPUT PACING number 
  3349.  
  3350. causes C-Kermit to pause for (at least) the indicated number of milliseconds 
  3351. (thousandths of a second) between each character in the OUTPUT string.  Use 
  3352. this option when OUTPUT'ing characters to a device that can't receive 
  3353. characters at the full communication speed without losing or garbling them. The 
  3354. default OUTPUT PACING is 0, i.e. no pauses.  Display with SHOW SCRIPTS. Edit 
  3355. 189.  As of edit 190, the OUTPUT command string interprets \N as an indication 
  3356. to send a NUL (ASCII 0). 
  3357.  
  3358.  
  3359. ΓòÉΓòÉΓòÉ 2.10.5. The New MINPUT Command ΓòÉΓòÉΓòÉ
  3360.  
  3361. The new command, MINPUT ("multiple input") is a version of the INPUT command 
  3362. that looks for more than one string.  Syntax: 
  3363.  
  3364. MINPUT sec [ string1 [ string2 [ string2 [ ... ] ] ] ] 
  3365.  
  3366. Strings are separated by spaces.  If any of the search strings is encountered 
  3367. within the timeout interval, the command succeeds and the \v(minput) variable 
  3368. is set to the number of the string that was found: 1, 2, 3, etc.  If none of 
  3369. the search strings is found, the command times out, fails, and \v(minput) is 
  3370. set to 0.  All SET INPUT paramaters apply - SET INPUT CASE, etc. Example: 
  3371.  
  3372. minput 30 Login: Username: Ready
  3373. if success goto LBL\v(minput)
  3374. end 1 Prompt didn't arrive.
  3375.  
  3376. looks for any of the three strings "Login:", "Username:", or "Ready" and then 
  3377. goes to one of the labels "LBL1", "LBL2", or "LBL3", depending on which string 
  3378. was matched. 
  3379.  
  3380. To include a space in a string, enclose it in { braces }. 
  3381.  
  3382. minput 20 {a b} c
  3383.  
  3384. This searches for either "a b" or "c". 
  3385.  
  3386. As in the regular INPUT and REINPUT commands, leading and trailing spaces are 
  3387. stripped from each search string unless it is enclosed in { braces }. Example: 
  3388.  
  3389. minput 20 {  abc  } {{ def }}    ghi
  3390.  
  3391. searches for "  abc  ", "{ def }", or "ghi". 
  3392.  
  3393.  
  3394. ΓòÉΓòÉΓòÉ 2.10.6. Other New or Improved Script Programming Commands ΓòÉΓòÉΓòÉ
  3395.  
  3396.  EVALUATE arithmetic-expression 
  3397.      The new EVALUATE command evaluates arithmetic expressions for you, 
  3398.      printing the answer.  It is exactly like the \feval() function described 
  3399.      in the book, but for interactive use: you can type the expression 
  3400.      directly, and the answer is printed, e.g.: 
  3401.  
  3402.           C-Kermit> evaluate 1+1
  3403.           2
  3404.           C-Kermit> eval 6!
  3405.           720
  3406.           C-Kermit> def \%a (7 + 8)
  3407.           C-Kermit> ev (1 + 2) * (\%a - 3)
  3408.           36
  3409.  
  3410.  FORWARD label 
  3411.      Like GOTO, except the label search begins at the current position in the 
  3412.      macro or command file, rather than at the beginning.  It will not find 
  3413.      labels that have already been passed.  The major use for a command like 
  3414.      this would be to improve the performance of script programs that contain a 
  3415.      lot of forward GOTOs, especially when that program is a command file that 
  3416.      will be executed from a diskette.  This is obviously not good programming 
  3417.      practice -- since such programs can easily break of blocks of code are 
  3418.      moved around -- but then neither are GOTOs themselves.  If the FORWARD 
  3419.      label search fails in the current macro or TAKE file, the search continues 
  3420.      in the forward direction only in superior macros macros and TAKE files. 
  3421.  
  3422.      Note:  The FORWARD command has been used extensively in the CKERMIT.INI 
  3423.      file for C-Kermit 5A(190), resulting in a dramatic decrease in startup 
  3424.      time. 
  3425.  
  3426.  GETC variable-name [ prompt-string ] 
  3427.      The new GETC command (edit 190) lets a script program prompt the user to 
  3428.      type a single character.  Example: 
  3429.  
  3430.           GETC \%a Press any key to continue:
  3431.  
  3432.      The character is stored in the given variable. 
  3433.  
  3434.  WRITE-LINE file text 
  3435.      This is exactly like the WRITE command, which is used to send the text to 
  3436.      the specified file (FILE, SCREEN, PACKET-LOG, etc).  The difference is 
  3437.      that WRITE-LINE always formats the output text as a line, or record, 
  3438.      appropriate to the underlying operating system's file format.  This allows 
  3439.      Kermit script programs to create text files in a system-independent 
  3440.      fashion.  Synonym: WRITELN.  WR, WRI, and WRIT are still accepted as 
  3441.      abbrevitions for WRITE.  Also see the \v(newline) variable.  Edit 190. 
  3442.  
  3443.  RENAME oldfilename newfilename 
  3444.      The second argument (normally the new name for the file) is allowed to be 
  3445.      a directory name (or, in OS/2, a device and directory name), in which case 
  3446.      the file is moved to the given (device and) directory, keeping its 
  3447.      original name.  Edit 190. 
  3448.  
  3449.  RETURN and END 
  3450.      These commands may now be given, with the expected results, from within 
  3451.      the command-lists of FOR, WHILE, or XIF commands.  Edit 190. 
  3452.  
  3453.  ASK and ASKQ 
  3454.      These commands now allow question mark and backslash to be entered just 
  3455.      like any other text character.  Prior to edit 190, question mark would 
  3456.      make a help message pop up, and backslash would fulfill its normal 
  3457.      function of introducting a variable or quoting a special character. 
  3458.      However, these commands are unlikely ever to be used by somebody who will 
  3459.      reply to a question with a Kermit variable name and expect it to be 
  3460.      evaluated.  Nor should they be expected to "quote" question marks.  This 
  3461.      change makes for smoother dialogs between Kermit scripts and users, and it 
  3462.      also allows users to type DOS-like filenames such as C:\TEMP\OOFA.TXT, 
  3463.      which could not otherwise be entered except by doubling each backslash. 
  3464.      However, script writers should note that the mere fact that a DOS path 
  3465.      name can be entered into a variable via: 
  3466.  
  3467.           ask \%f { Please type the DOS path name: }
  3468.            Please type the DOS path name: c:\123\files\widgets.wks
  3469.  
  3470.      does not mean that the resulting variable can be used bare and 
  3471.      unprotected. For example: 
  3472.  
  3473.           send foo.bar \%f
  3474.  
  3475.      will not do what you think, because the SEND command will evaluate \%f 
  3476.      "too much" (in this case "\123" becomes becomes "{", i.e. ASCII character 
  3477.      number 123, and \files looks like the beginning of a Kermit function, and 
  3478.      results in a syntax error).  The needed protection comes from 
  3479.      \fcontents(): 
  3480.  
  3481.           send foo.bar \fcontents(\%f)
  3482.  
  3483.      which is replaced by variable's definition ("contents") but does not 
  3484.      evaluate it any further. 
  3485.  
  3486.  
  3487. ΓòÉΓòÉΓòÉ 2.10.7. Using REXX ΓòÉΓòÉΓòÉ
  3488.  
  3489. As of edit 190, OS/2 C-Kermit (32-bit version only) has a REXX programming 
  3490. interface consisting of the single command, REXX.  REXX <command> executes the 
  3491. given REXX command, for example: 
  3492.  
  3493. REXX SAY "Hello"
  3494.  
  3495. or: 
  3496.  
  3497. REXX RETURN "Goodbye"
  3498.  
  3499. or: 
  3500.  
  3501. REXX CALL filename [ text ]
  3502.  
  3503. which executes a REXX program from the given file.  The text, if any, is passed 
  3504. to the REXX program, where it is available as ARG(1). 
  3505.  
  3506. A REXX command or program invoked via C-Kermit's REXX command can also execute 
  3507. C-Kermit commands from within REXX procedures that are invoked via C-Kermit's 
  3508. REXX CALL command, by enclosing them in single quotes, for example: 
  3509.  
  3510. 'set parity none'
  3511. 'return \v(parity)'
  3512. say rc
  3513.  
  3514. The RETURN value from the REXX command or program is available in the C-Kermit 
  3515. variable \v(rexx).  Set this by including a RETURN <value> command in your REXX 
  3516. command or program. 
  3517.  
  3518. Q: Why would you want to use REXX from within C-Kermit? 
  3519.  
  3520. A: Many reasons: 
  3521.  
  3522.  o Easier-to-use math functions 
  3523.  o Running a REXX program without the overhead of starting a command shell 
  3524.  o C-Kermit access to additional OS/2 specific functionality (e.g. Create WPS 
  3525.    objects, perform directory searchs, ...) 
  3526.  o Add your own functions to C-Kermit's script language 
  3527.  
  3528.  There are three types of functionality provided in the C-Kermit/REXX 
  3529.  interface: 
  3530.  
  3531.   1. Ability to execute a REXX command line. 
  3532.   2. Ability to execute a REXX command file. 
  3533.   3. Ability to call C-Kermit commands from a REXX program that is executing 
  3534.      under C-Kermit. 
  3535.  
  3536.  Let's say you want to execute a one-line REXX program from within C-Kermit. 
  3537.  You would use the new C-Kermit "REXX" command.  The format of the command is: 
  3538.  
  3539.  rexx REXX-command 
  3540.  
  3541.  where REXX-command is everything after the keyword REXX to the end of the 
  3542.  line.  A simple example: 
  3543.  
  3544.   C-Kermit> rexx say "hello"
  3545.  
  3546.  executes the REXX command SAY with the parameter "hello", which prints the 
  3547.  word "hello" on your screen. 
  3548.  
  3549.  Another example, returning a value from REXX: 
  3550.  
  3551.   C-Kermit> rexx return 4 * 4
  3552.  
  3553.  the REXX command "return 4 * 4" calculates the value "16" and returns it to 
  3554.  C-Kermit.  C-Kermit stores the return value from the last REXX command in 
  3555.  \v(rexx): 
  3556.  
  3557.   C-Kermit> echo \v(rexx)
  3558.   16
  3559.  
  3560.  Let's say you want to execute a series of REXX commands, but you don't want to 
  3561.  create a REXX command file: 
  3562.  
  3563.   C-Kermit> rexx say "hello"\13 return 0
  3564.  
  3565.  This prints the string "hello" and then returns the value "0" to C-Kermit. 
  3566.  Notice that \13 (Carriage Return, Ctrl-M) was placed between the commands. 
  3567.  This is necessary because REXX expects to find each command separated by a 
  3568.  return character just as if it was being read from a file. 
  3569.  
  3570.  To execute a REXX command file, use: 
  3571.  
  3572.   C-Kermit> rexx call oofa.cmd
  3573.  
  3574.  where "oofa.cmd" is the name of your REXX command file. 
  3575.  
  3576.  Now let's say you want to gain access to a C-Kermit variable value from within 
  3577.  a REXX program, change a C-Kermit setting, or execute a C-Kermit command.  You 
  3578.  could alter your program so it is called in separate parts from a C-Kermit 
  3579.  TAKE file or macro.  But there is a better way.  Just include the C-Kermit 
  3580.  command in your REXX program.  For example, you want to set Kermit's parity 
  3581.  from within your REXX program: 
  3582.  
  3583.   /* Beginning of REXX program file */
  3584.   set parity "none"
  3585.  
  3586.  Let's say you want to set a REXX variable to the value of a C-Kermit variable: 
  3587.  
  3588.   'return \v(parity)'
  3589.   parity = rc
  3590.  
  3591.  Notice the single quotes around and the "return" command before the C-Kermit 
  3592.  variable statement.  REXX passes the quoted statement to C-Kermit for 
  3593.  evaluation.  C-Kermit interprets the command and returns to REXX the value of 
  3594.  the parity variable.  This value is then stored in the REXX special variable 
  3595.  RC.  RC stores the return value of all non-REXX commands.  The next statement 
  3596.  assigns the value of REXX variable RC to the REXX variable parity. 
  3597.  
  3598.  Q:  What happens if you create a REXX program file that contains C-Kermit 
  3599.      commands and you try to execute it outside of the C-Kermit environment? 
  3600.  
  3601.  A:  A Syntax Error. This is because the C-Kermit commands are only available 
  3602.      when C-Kermit is executing the REXX command file. 
  3603.  
  3604.  Q:  Can C-Kermit be used with REXX programming tools such as Watcom's VX-REXX? 
  3605.  
  3606.  A:  Yes and No.  C-Kermit and VX-REXX work together too.  To run a VX-REXX 
  3607.      program from within C-Kermit, first generate a .VRM file and then invoke 
  3608.      it with the C-Kermit REXX CALL command.  However, the VX-REXX program is 
  3609.      not allowed to make Presentation Manager calls, because VIO applications 
  3610.      (like C-Kermit) can't do that. 
  3611.  
  3612.  
  3613. ΓòÉΓòÉΓòÉ 2.11. External Protocols ΓòÉΓòÉΓòÉ
  3614.  
  3615.  
  3616. ΓòÉΓòÉΓòÉ 2.11.1. The REDIRECT Command ΓòÉΓòÉΓòÉ
  3617.  
  3618.  Syntax:   REDIRECT command [ arguments... ] 
  3619.  
  3620.  Synonym:  <command [ arguments... ] 
  3621.  
  3622.  Edit 190.  This command allows you to run another program from the C-Kermit 
  3623.  prompt, and have its standard input and output redirected to the SET LINE / 
  3624.  SET PORT connection. 
  3625.  
  3626.  It is useful for running "external protocols" over the C-Kermit connection 
  3627.  when you have made a connection to a computer or service that does not support 
  3628.  the Kermit protocol.  REDIRECT works only with software that uses standard 
  3629.  input and output. 
  3630.  
  3631.  In OS/2 C-Kermit, the REDIRECT command works only for serial connections, and 
  3632.  not with network connections. 
  3633.  
  3634.  
  3635. ΓòÉΓòÉΓòÉ 2.11.2. New Macros ΓòÉΓòÉΓòÉ
  3636.  
  3637. The following new macro packages are available for calling external protocols 
  3638. from OS/2 C-Kermit.  They are for use with M2ZMODEM, P, CEXYZ/2, and similar 
  3639. programs.  To make these macros available, give a TAKE command for the 
  3640. appropriate file: 
  3641.  
  3642.  M2ZMODEM.INI 
  3643.            OS/2 M2ZMODEM, an external protocol package providing Xmodem, 
  3644.            Ymodem, and Zmodem send and receive capabilities on OS/2 via serial 
  3645.            connections. M2ZMODEM is a shareware program.  Version 2.12 costs 
  3646.            US$50. M2ZMODEM is available from various ftp sites, Bulletin 
  3647.            Boards, CompuServe or directly from the author: 
  3648.  
  3649.                       M Wahlgren Software Dev.
  3650.                       Kransen 4E
  3651.                       S-416 72 Gothenburg
  3652.                       SWEDEN
  3653.                       Fax: +46 31 196417
  3654.                       Phone: +46 31 196074
  3655.  
  3656.  P101.INI 
  3657.            P 1.01 is an external protocol package by Jyrki Salmi 
  3658.            <jytasa@jyu.fi> in Finland providing Xmodem, Ymodem, and Zmodem send 
  3659.            and receive capabilities on OS/2 via serial connections, available 
  3660.            from most major ftp sites, bulletin board services and CompuServe. 
  3661.  
  3662.  P200.INI 
  3663.            P 2.00 is a newer release of P offering serial, IBM TCP/IP, and 
  3664.            Named Pipe connections, available from the same sources.  Version 
  3665.            2.00 of P was designed with C-Kermit in mind, and meshes naturally 
  3666.            with C-Kermit's serial and network connection methods. 
  3667.  
  3668.  CEXYZ2.INI 
  3669.            CEXYZ/2 is shareware from Cutting Edge Computing, POB 90476, Burton, 
  3670.            MI 48509, USA. 
  3671.  
  3672.  Each of these command files defines the following macros: 
  3673.  
  3674.  rz        Receive with Zmodem protocol. 
  3675.  sz        Send with Zmodem protocol. 
  3676.  ry        Receive with Ymodem protocol. 
  3677.  sy        Send with Ymodem protocol. 
  3678.  rg        Receive with Ymodem-G protocol. 
  3679.  sg        Send with Ymodem-G protocol. 
  3680.  rx        Receive with Xmodem protocol. 
  3681.  sx        Send with Xmodem protocol. 
  3682.  
  3683.  
  3684. ΓòÉΓòÉΓòÉ 2.12. New Command-Line Options ΓòÉΓòÉΓòÉ
  3685.  
  3686. Command-line options are commands that can be given to C-Kermit on the same 
  3687. line with which you invoke it, for example: 
  3688.  
  3689. kermit -s oofa.txt -p s
  3690.  
  3691. Command-line help and error messages have been improved, and the following 
  3692. command-line options or new features have been added: 
  3693.  
  3694.  -a  name ("as-name" for a transferred file) now allows "name" to be a device 
  3695.      or directory name, when used in conjunction with '-r' (RECEIVE), to 
  3696.      specify a device and/or directory into which all incoming files are to be 
  3697.      stored under the names they were sent with.  If "name" is not a device or 
  3698.      directory name, the (first) incoming file is stored under the given name, 
  3699.      as before. Edit 190. 
  3700.  
  3701.  -D n (where n is a number) is equivalent to the interactive command SET DELAY 
  3702.      n (has no use in OS/2 C-Kermit). 
  3703.  
  3704.  -N n (where n is a number) is the NETBIOS adapter number to be used with 
  3705.      NETBIOS connections (32-bit version only). 
  3706.  
  3707.  -R  advises C-Kermit that it will be used in remote mode only.  Of no use in 
  3708.      OS/2 C-Kermit, which always operates in local mode. 
  3709.  
  3710.  
  3711. ΓòÉΓòÉΓòÉ 2.13. Network Communications ΓòÉΓòÉΓòÉ
  3712.  
  3713. C-Kermit for OS/2 now contains a generous selection of networking options. 
  3714. Support is provided for the most commonly used networking protocols, including 
  3715. TCP/IP, NETBIOS (32-bit only), Named Pipes (32-bit only), DECnet (PATHWORKS), 
  3716. and LAN modem servers. 
  3717.  
  3718.  
  3719. ΓòÉΓòÉΓòÉ 2.13.1. TCP/IP Networking ΓòÉΓòÉΓòÉ
  3720.  
  3721. TCP/IP networking was added in edit 189, exactly as documented in Using 
  3722. C-Kermit (Chapters 3 and 4, etc) for the UNIX, VMS, and AOS/VS versions of 
  3723. C-Kermit.  C-Kermit's TCP/IP support works with: 
  3724.  
  3725.  o IBM TCP/IP 1.2.1 (C-Kermit edit 189 and later) 
  3726.  o IBM TCP/IP 2.0 (edit 190), including Warp SLIP connections. 
  3727.  o Essex Systems TCP/2 (edit 189 and later) 
  3728.  o FTP Software's PC/TCP for OS/2 (edit 190) 
  3729.  o IP-Switch Vantage IP (edit 190) 
  3730.  
  3731.  TCP/IP support is not yet available for Novell LAN Workplace for OS/2.  If a 
  3732.  TCP/IP package includes an IBM- or TCP/2-compatible TCPIPDLL.DLL library, then 
  3733.  C-Kermit should work with it.  Support for other OS/2 TCP/IP packages will be 
  3734.  added in future releases.  These can be supplied in the form of small DLLs 
  3735.  that can be installed after the fact, which C-Kermit 5A(190) will load 
  3736.  automatically if you define the environment variable CKTCPIPDLL to indicate 
  3737.  the pathname. 
  3738.  
  3739.  Commands: 
  3740.  
  3741.   SET NETWORK TCP/IP
  3742.   SHOW NETWORK
  3743.   SET HOST [ ip-name-or-address [ service ] ]
  3744.   TELNET [ <p-name-or-address [ service ] ]
  3745.   <esc-char>I or \Ktn_ip  in CONNECT mode (Interrupt Process)
  3746.   <esc-char>A or \Ktn_ayt in CONNECT mode (Are You There?)
  3747.   <esc-char>B or \Kbreak  in CONNECT mode (Break)
  3748.   etc, the same as for UNIX, (Open)VMS, and AOS/VS.
  3749.  
  3750.  as described on pages 67-74 of Using C-Kermit. The SHOW NETWORK command tells 
  3751.  which TCP/IP interface DLL was loaded, if any.  If you think that a TCP/IP DLL 
  3752.  should have been loaded, but it was not, you can find out why from C-Kermit's 
  3753.  debug log: 
  3754.  
  3755.   [C:\MYDIR] ckermit -d -Y
  3756.   See messages...
  3757.   C-Kermit> exit
  3758.   [C:\MYDIR] more < debug.log
  3759.  
  3760.  Hint:  Remember that C-Kermit's TCP/IP interface DLLs must be kept in the same 
  3761.  directory as C-Kermit itself (as noted in the READ.ME file, and as done by the 
  3762.  install procedure). 
  3763.  
  3764.  As of edit 190, the TELNET feature also has an added "window-size" negotiation 
  3765.  capability, which lets C-Kermit automatically inform the TELNET server of its 
  3766.  screen dimensions (if the remote TELNET server also supports this capability, 
  3767.  known as NAWS, "negotiate about window size", use of which is negotiated 
  3768.  automatically). 
  3769.  
  3770.  On a TCP/IP TELNET connection, you should normally have PARITY set to NONE and 
  3771.  FLOW-CONTROL also set to NONE.  If file transfer does not work with these 
  3772.  settings (for example, because the remote TELNET server only gives a 7-bit 
  3773.  data path), use SET PARITY SPACE.  Do not use SET PARITY MARK, EVEN, or ODD on 
  3774.  a TELNET connection -- it interferes with TELNET protocol. 
  3775.  
  3776.  TELNET sessions are treated just like serial communications sessions as far as 
  3777.  "terminal bytesize" and "command bytesize" are concerned.  If you need to view 
  3778.  and/or enter 8-bit characters during a TELNET session, you must tell C-Kermit 
  3779.  to SET TERMINAL BYTESIZE 8, SET COMMAND BYTESIZE 8, and SET PARITY NONE. 
  3780.  
  3781.  In edit 190, the SET TELNET NEWLINE-MODE command has a new option, RAW, which 
  3782.  tells C-Kermit to send carriage return characters (Enter key) as bare carriage 
  3783.  returns.  Previously, the only options for this command were ON (send CR as 
  3784.  CRLF) and OFF (send CR as CR and NUL), as required by the TELNET protocol 
  3785.  specification.  Use RAW for communicating with services that do not follow the 
  3786.  TELNET specification. 
  3787.  
  3788.  When TELNET'ing into an OS/2 system, you should set your terminal type to 
  3789.  VT100.  This is particularly important if you are going to use C-Kermit or 
  3790.  TELNET on OS/2 system to establish a second connection out from the PC that 
  3791.  you have TELNET'ed into. 
  3792.  
  3793.  Users of IP-Switch Vantage IP may notice a brief TRANSMISSION BLOCKED message 
  3794.  after typing the first character upon entering terminal mode.  The blocked 
  3795.  transmission does not result in any data loss or performance degradation as it 
  3796.  only occurs only on the first typed character. 
  3797.  
  3798.  If you SET TERMINAL DEBUG ON or SET DEBUG SESSION (same thing), TELNET 
  3799.  protocol negotiations will be displayed on your screen.  But most of the 
  3800.  interesting negotiations happen at the time the SET HOST or TELNET command is 
  3801.  given, before CONNECT mode is entered, so you won't see them on your screen. 
  3802.  However, you can still capture them in the debug log ("log debug"). 
  3803.  
  3804.  Q:  Why use Kermit on a TCP/IP connection rather than TELNET and FTP? 
  3805.  
  3806.  A:  Many reasons: Unlike TELNET, C-Kermit can also transfer files. C-Kermit 
  3807.      has a script programming language, a powerful key mapping facility, screen 
  3808.      rollback, and many other amenities lacking in most TELNET programs.  It 
  3809.      also has a unique ability to translate character sets, both during 
  3810.      terminal emulation and file transfer.  And many services are coming on the 
  3811.      Internet which do not provide FTP, but do provide Kermit file transfer. 
  3812.  
  3813.  Q:  Why is Kermit file transfer over a TCP/IP connection slower than FTP? 
  3814.  
  3815.  A:  Because the Kermit program on the remote end of the connection is not 
  3816.      running directly on a TCP socket, but rather running underneath a TELNET 
  3817.      server, usually on a pseudoterminal and under a login shell, with the vast 
  3818.      amounts of per-character overhead all of that implies (future Kermit 
  3819.      releases will be able to act directly as TCP servers, eliminating all this 
  3820.      overhead).  Still, you can get reasonably fast transfer rates by using 
  3821.      large window sizes and long packets. 
  3822.  
  3823.  
  3824. ΓòÉΓòÉΓòÉ 2.13.2. Using Named Pipes ΓòÉΓòÉΓòÉ
  3825.  
  3826. As of version 5A(190), OS/2 C-Kermit (32-bit) supports NAMED PIPES as an 
  3827. interprocess communication mechanism.  Named Pipes support for local processes 
  3828. is built into OS/2.  In order to use them to communicate across a local area 
  3829. network both computers must have installed Named Pipe network support software. 
  3830. Each computer may be a Client, a Server or both.  Each server on a particular 
  3831. network has a unique Named Pipe Server Name assigned as part of the Named Pipe 
  3832. software installation. 
  3833.  
  3834. C-Kermit has been tested with the following products: 
  3835.  
  3836.  o IBM LAN Server Requester (Client) to LAN Server (Server) 
  3837.  o Microsoft LAN Manager Requester (Client) to LAN Manager (Server) 
  3838.  o Novell NetWare Requester (Client) to Novell NetWare Requester (Server) 
  3839.  
  3840.  To have a named pipe connection connection between two Kermit programs, one 
  3841.  Kermit program must be the "server" and the other must be the "client".  The 
  3842.  server is the one that is started first, and which waits for a connection to 
  3843.  come in from the client.  The server is started this way: 
  3844.  
  3845.  SET NETWORK NAMED-PIPE [ pipename ] 
  3846.  SET HOST * 
  3847.  
  3848.  If the pipename is omitted from the SET NETWORK NAMED-PIPE command, a pipename 
  3849.  of "kermit" is used.  "SET HOST *" means to wait for a connection to come in 
  3850.  from another Kermit program. 
  3851.  
  3852.  Then the client makes a connection to the server: 
  3853.  
  3854.  SET NETWORK NAMED-PIPE [ pipename ] 
  3855.  SET HOST servername 
  3856.  
  3857.  where pipename is the pipename used by the server you want to communicate with 
  3858.  (default "kermit"), and servername is the name of the server on the network. 
  3859.  If you specify a servername of "." (period), this means your own computer; you 
  3860.  can set up such local connections even if you don't have Named Pipes network 
  3861.  support installed, e.g. between two copies of C-Kermit running in different 
  3862.  windows. 
  3863.  
  3864.  Both pipename and servername are case-independent, and can contain spaces. 
  3865.  
  3866.  There is no particular restriction on what Kermit commands can be used on a 
  3867.  named-pipe connection.  Here are some useful scenarios: 
  3868.  
  3869.   1. The named-pipe server is in Kermit SERVER mode.  Clients can perform SEND, 
  3870.      GET, REMOTE, FINISH, and similar commands. 
  3871.  
  3872.   2. Both Kermit programs are in CONNECT mode, allowing two network users to 
  3873.      "chat" with each other.  Each user should give the following commands: 
  3874.  
  3875.           set terminal echo local
  3876.           set terminal cr-display crlf
  3877.           connect
  3878.  
  3879.  To close a named-pipe connection, give the HANGUP command (or the SET HOST 
  3880.  command, specifying no hostname) to either the client or the server. 
  3881.  
  3882.  Unlike with TCP/IP connections, the C-Kermit named-pipe server can wait for a 
  3883.  client to connect.  After the client disconnects, the connection will be reset 
  3884.  to await the next client.  This allows for the use of kermit "server" as a 
  3885.  pseudo-FTP site for those without IBM TCP/IP. 
  3886.  
  3887.  Note:  When using Named Pipes with LAN Server or LAN Manager, only the machine 
  3888.  which has the Network Server software is capable of successfully using the SET 
  3889.  HOST * command.  This is because the client network requesters do not 
  3890.  implement the server side of the named-pipe network redirection. 
  3891.  
  3892.  Novell NetWare Requester for OS/2, on the other hand, implements both the 
  3893.  named-pipes client and server code on the client workstation and does not 
  3894.  require the existence of a Network server to operate. 
  3895.  
  3896.  
  3897. ΓòÉΓòÉΓòÉ 2.13.3. Using NETBIOS ΓòÉΓòÉΓòÉ
  3898.  
  3899. Added in edit 190: NETBIOS support, both the original NETBIOS 3.0 (NETAPI) 
  3900. interface and the newer NETBIOS 4.0 (ACSBNET) interface.  C-Kermit has been 
  3901. tested with the following products: 
  3902.  
  3903.  NETBIOS 4.0 interface (ACSNETB.DLL): 
  3904.  
  3905.     IBM LAN Adapter and Protocol Support (LAPS) as found in: 
  3906.  
  3907.        IBM Network Transport Services/2 
  3908.        IBM LAN Distance 
  3909.        IBM Communication Manager/2 
  3910.        IBM LAN Server 3.x 
  3911.        IBM LAN Requester 3.x 
  3912.  
  3913.  NETBIOS 3.0 interface (NETAPI.DLL): 
  3914.  
  3915.     Microsoft LAN Manager Requester 
  3916.     IBM Extended Services 1.x 
  3917.     IBM LAN Server 2.x Requester 
  3918.     Novell NetWare 2.x Requester 
  3919.  
  3920.  
  3921. ΓòÉΓòÉΓòÉ 2.13.3.1. Client and Server ΓòÉΓòÉΓòÉ
  3922.  
  3923. To have a NETBIOS connection connection between two Kermit programs, one Kermit 
  3924. program must the "server" and the other must be the "client".  The server is 
  3925. the one that is started first, and which waits for a connection to come in from 
  3926. the client.  The server is started this way: 
  3927.  
  3928. SET NETWORK NETBIOS [ localname ] 
  3929. SET HOST * 
  3930.  
  3931. If the localname is omitted from the SET NETWORK NETBIOS command, then if a 
  3932. HOSTNAME environment variable is defined, that is used; otherwise if a 
  3933. SYSTEMNAME environment variable is defined, that is used; otherwise "kermit" is 
  3934. used (the HOSTNAME variable is created by TCP/IP installation, SYSTEMNAME by 
  3935. DECnet PATHWORKS installation; if you don't have TCP/IP or PATHWORKS installed, 
  3936. you can add a "SET HOSTNAME=blah" or "SET SYSTEMNAME=blah" statement to your 
  3937. CONFIG.SYS file).  The localname must be unique on the NETBIOS network; if not, 
  3938. the SET NETWORK command will fail. 
  3939.  
  3940. "SET HOST *" means to wait for a connection to come in from another Kermit 
  3941. program. 
  3942.  
  3943. Then the client makes a connection to the server: 
  3944.  
  3945. SET NETWORK NETBIOS [ localname ] 
  3946. SET HOST servername 
  3947.  
  3948. where localname is the new name used to identify the client Kermit session, and 
  3949. servername is the localname of the server's Kermit session. 
  3950.  
  3951. The localname and servername are case-dependent, and can contain spaces. 
  3952.  
  3953. There is no particular restriction on what Kermit commands can be used on a 
  3954. NETBIOS connection.  Here are some useful scenarios: 
  3955.  
  3956.   1. The NETBIOS server is in Kermit SERVER mode.  Clients can perform SEND, 
  3957.      GET, REMOTE, FINISH, and similar commands. 
  3958.  
  3959.   2. Both Kermit programs are in CONNECT mode, allowing two network users to 
  3960.      "chat" with each other.  Each user should give the following commands: 
  3961.  
  3962.           set terminal echo local
  3963.           set terminal cr-display crlf
  3964.           connect
  3965.  
  3966.  To close a NETBIOS connection, give the HANGUP command (or the SET HOST 
  3967.  command, specifying no hostname) to either the client or the server. 
  3968.  
  3969.  Unlike with TCP/IP connections, the C-Kermit NETBIOS server can wait for a 
  3970.  client to connect.  After the client disconnects, the connection will be reset 
  3971.  to await the next client.  This allows for the use of kermit "server" as a 
  3972.  pseudo-FTP site for those without IBM TCP/IP. 
  3973.  
  3974.  NETBIOS is the preferred protcol to use when transfering files with MS-DOS 
  3975.  Kermit or C-Kermit for OS/2 in a peer-to-peer local area network.  NETBIOS is 
  3976.  supported over most networking protocols including: Netbeui, IPX, IP, and 
  3977.  LU6.2.  In addition, it has lower overhead than all other OS/2 implemented 
  3978.  networking protocols. 
  3979.  
  3980.  
  3981. ΓòÉΓòÉΓòÉ 2.13.3.2. NETBIOS Configuration ΓòÉΓòÉΓòÉ
  3982.  
  3983. Each C-Kermit session requires the following resources from the NETBIOS 
  3984. provider: 1 Name, 32 Commands, and 1 session.  For example, if you wish to have 
  3985. three C-Kermit sessions running simultaneously in Server mode, NETBIOS must be 
  3986. configured to support at least 3 Names, 96 Commands, and 3 sessions. 
  3987.  
  3988. If the number of available NETBIOS commands is unavailable, NETBIOS support for 
  3989. the current C-Kermit session will not be installed. 
  3990.  
  3991. The default settings for IBM and NetWare NETBIOS implementations are: 
  3992.  
  3993. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3994. ΓöéProduct             ΓöéConfig File ΓöéSessionsΓöéCommandsΓöéNames Γöé
  3995. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3996. ΓöéNovell (IPXNB)      ΓöéNET.CFG     Γöé16      Γöé32      Γöé24    Γöé
  3997. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3998. ΓöéIBM NTS/2 (NETBEUI) ΓöéPROTOCOL.INIΓöé5       Γöé95      Γöé21    Γöé
  3999. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4000. The maximum settings for IBM and NetWare NETBIOS implementations are: 
  4001.  
  4002. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4003. ΓöéProduct             ΓöéConfig File ΓöéSessionsΓöéCommandsΓöéNames Γöé
  4004. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4005. ΓöéNovell (IPXNB)      ΓöéNET.CFG     Γöé64      Γöé128     Γöé128   Γöé
  4006. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  4007. ΓöéIBM NTS/2 (NETBEUI) ΓöéPROTOCOL.INIΓöé254     Γöé255     Γöé254   Γöé
  4008. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4009.  
  4010. The method for modifying NETBIOS resources depends on the NETBIOS product; it 
  4011. is normally done by executing the configuration program (LAPS, INSTALL, ...) or 
  4012. by manually modifying the configuration files and restarting OS/2. 
  4013.  
  4014. It is possible to have two or more products each providing NETBIOS services by 
  4015. running multiple NETBIOS protocol stacks.  All products which use LAPS may be 
  4016. mixed together.  And LAPS may be mixed with up to one product which uses the 
  4017. NETAPI.DLL product.  However, there are limitations.  In particular, you can 
  4018. not successfully run Novell NETBIOS support with IBM Extended Services. 
  4019.  
  4020. The most common dual stack combination is of IBM Netbeui (LAPS) and Novell 
  4021. IPXNB (NetWare Requester).  The installation procedure for each package is 
  4022. completely ignorant of the other protocol.  The dual stack requires that the 
  4023. configuration files be manually modified with a text editor (e.g. E.EXE).  The 
  4024. NETBIOS configuration is defined by statements in two files: NET.CFG and 
  4025. PROTOCOL.INI.  These files contains statements defining how many NETBIOS Names, 
  4026. Commands, and Sessions are available to each protocol stack.  The settings for 
  4027. each protocol stack must be consistent between the two files. 
  4028.  
  4029. For both protocols to coexist the following section to the must be added to the 
  4030. end of the PROTOCOL.INI file: 
  4031.  
  4032. [NETBIOS]
  4033.   DriverName=NETBIOS$
  4034.   <virtual adapter>=<driver>,<physical adapter>,<sessions>,<commands>,<names>
  4035.   <virtual adapter>=<driver>,<physical adapter>,<sessions>,<commands>,<names>
  4036.   ...
  4037. where: 
  4038.  
  4039.  <virtual adapter> 
  4040.      is ADAPTER0 through ADAPTER3.  The adapter numbers must be used in 
  4041.      sequence. 
  4042.  
  4043.  <driver> 
  4044.      is either ipxnb$ for Novell or netbeui$ for IBM. 
  4045.  
  4046.  <physical adapter> 
  4047.      is almost always 0 since there is usually only one physical network 
  4048.      adapter in the machine. 
  4049.  
  4050.  <sessions>, <commands>, and <names> 
  4051.      must match the settings in NET.CFG (NetWare NETBIOS section) if <driver> 
  4052.      is IPXNB$; or PROTOCOL.INI (NETBEUI section) if <driver> is NETBEUI$. 
  4053.  
  4054.  Without this additional section in PROTOCOL.INI, only IBM Netbeui will be 
  4055.  available to C-Kermit.  This section defines up to 4 virtual adapters (0-3), 
  4056.  each of which is assigned a specific NETBIOS protocol stack implementation. 
  4057.  C-Kermit allows you to choose which NETBIOS implementation you want to use by 
  4058.  using the '-N' (note uppercase) command-line option.  To use the driver 
  4059.  assigned to ADAPTER1 in the [NETBIOS] section of PROTOCOL.INI use: 
  4060.  
  4061.   ckermit -N 1
  4062.  
  4063.  The syntax of the option is: 
  4064.  
  4065.   -N adapter
  4066.  
  4067.  where adapter is one of the virtual adapter numbers (default = 0). 
  4068.  
  4069.  It is important to know which NETBIOS protocol stack you are using as both 
  4070.  machines must be using the same stack type for them to successfully 
  4071.  communicate. 
  4072.  
  4073.  The following provide examples of valid [NETBIOS] sections in PROTOCOL.INI. 
  4074.  
  4075.  Example 1: Both IBM and Novell NETBIOS implementations and one physical 
  4076.  adapter.  Novell NETBIOS is the default. 
  4077.  
  4078.   [NETBIOS]
  4079.      DriverName=NETBIOS$
  4080.      Adapter0=ipxnb$,0,48,128,16
  4081.      Adapter1=netbeui$,0,48,255,16
  4082.  
  4083.  Example 2: Both IBM and Novell NETBIOS implementations and one physical 
  4084.  adapter.  IBM NETBIOS is the default. 
  4085.  
  4086.   [NETBIOS]
  4087.      DriverName=NETBIOS$
  4088.      Adapter0=netbeui$,0,48,255,16
  4089.      Adapter1=ipxnb$,0,48,128,16
  4090.  
  4091.  Example 3: Only Novell NETBIOS implementation and one physical adapter. 
  4092.  
  4093.   [NETBIOS]
  4094.      DriverName=NETBIOS$
  4095.      Adapter0=ipxnb$,0,48,128,16
  4096.  
  4097.  Example 4:  Both IBM and Novell NETBIOS implementations and two physical 
  4098.  adapters.  IBM NETBIOS is the default.  (Novell NETBIOS cannot be assigned to 
  4099.  two physical adapters.) 
  4100.  
  4101.   [NETBIOS]
  4102.      DriverName=NETBIOS$
  4103.      Adapter0=netbeui$,0,48,255,16
  4104.      Adapter1=netbeui$,1,48,255,16
  4105.      Adapter2=ipxnb$,0,48,128,16
  4106.  
  4107.  
  4108. ΓòÉΓòÉΓòÉ 2.13.4. Using DECnet PATHWORKS ΓòÉΓòÉΓòÉ
  4109.  
  4110. DECnet LAT (Local Area Transport) support works in conjunction with DEC's 
  4111. PATHWORKS For OS/2 product, which must be installed, and LATCALLS.DLL must be 
  4112. in your LIBPATH.  To make LAT connections from C-Kermit: 
  4113.  
  4114. SET NETWORK DECNET 
  4115. SET HOST hostname 
  4116.  
  4117. and then use all of Kermit's communication features -- terminal emulation, file 
  4118. transfer, etc -- in the same way you would on a serial or TCP/IP connection. 
  4119.  
  4120. If you experience difficulties transferring files that contain 8-bit data, use 
  4121. SET PARITY SPACE and/or use shorter packets.  Reportedly, some character loss 
  4122. will occur in the underlying PATHWORKS transport, and sometimes even random 
  4123. disconnections; hopefully, this will be fixed in PATHWORKS 5.0. 
  4124.  
  4125.  
  4126. ΓòÉΓòÉΓòÉ 2.13.5. Using Asynchronous Communication Servers ΓòÉΓòÉΓòÉ
  4127.  
  4128. There are two methods for using remote modems accessed via LAN server 
  4129. (asynchronous communication server): 
  4130.  
  4131.   1. Map the remote port (modem) to a local port name (e.g. COM3) with a NET 
  4132.      USE command before starting Kermit, and then unmap it afterwards: 
  4133.  
  4134.           net use com3 \\server\modem
  4135.           ckermit -l com3
  4136.           net use com3 /d
  4137.  
  4138.   2. Simply use the Universal Naming Convention (UNC) resource name as the port 
  4139.      name: 
  4140.  
  4141.           ckermit -l \\server\modem
  4142.  
  4143.  Because backslash (\) is a special command character, use one of the following 
  4144.  forms at the C-Kermit prompt or in a command file or macro: 
  4145.  
  4146.   set line //server/modem
  4147.  or: 
  4148.  
  4149.   set line \\\\server\\modem
  4150.  or: 
  4151.  
  4152.   set command quoting off
  4153.   set line \\server\modem
  4154.   set command quoting on
  4155.  
  4156.  
  4157. ΓòÉΓòÉΓòÉ 2.13.6. Networking Hints and Tips ΓòÉΓòÉΓòÉ
  4158.  
  4159. The SET HOST command uses your current SET NETWORK type.  For example: 
  4160.  
  4161. SET NETWORK DECNET
  4162. SET HOST OOFA
  4163.  
  4164. will try to make a DECnet (PATHWORKS) LAT connection to DECnet node OOFA. 
  4165. However, please be aware that a SET NETWORK command will fail if the given type 
  4166. of network is not installed, or if (in the case of NETBIOS) the given name is 
  4167. already in use.  Thus a safer construction would be: 
  4168.  
  4169. SET NETWORK NETBIOS OOFA
  4170. IF FAIL STOP 1 Can't access NETBIOS network
  4171. SET HOST MUPEEN
  4172. IF FAIL STOP 1 Can't make NETBIOS connection
  4173.  
  4174. The default network type (which is used if give a SET HOST command without 
  4175. first giving a SET NETWORK command) depends on which network products you have 
  4176. installed on your OS/2 system, chosen in this order of preference: 
  4177.  
  4178.   1. TCP/IP 
  4179.   2. DECnet 
  4180.   3. Named Pipes 
  4181.  
  4182.  NETBIOS cannot be a default choice because it requires a user-assigned name. 
  4183.  
  4184.  On a TCP/IP TELNET connection, you should normally have PARITY set to NONE and 
  4185.  FLOW-CONTROL also set to NONE.  If file transfer does not work with these 
  4186.  settings (for example, because the remote TELNET server only gives a 7-bit 
  4187.  data path), use SET PARITY SPACE.  Do not use SET PARITY MARK, EVEN, or ODD on 
  4188.  a TELNET connection -- it interferes with TELNET protocol. 
  4189.  
  4190.  TELNET sessions are treated just like serial communications sessions as far as 
  4191.  "terminal bytesize" and "command bytesize" are concerned.  If you need to view 
  4192.  and/or enter 8-bit characters during a TELNET session, you must tell C-Kermit 
  4193.  to SET TERMINAL BYTESIZE 8, SET COMMAND BYTESIZE 8, and SET PARITY NONE. 
  4194.  
  4195.  If you SET TERMINAL DEBUG ON or SET DEBUG SESSION (same thing), TELNET 
  4196.  protocol negotiations will be displayed on your screen.  But most of the 
  4197.  interesting negotiations happen at the time the SET HOST or TELNET command is 
  4198.  given, before CONNECT mode is entered, so you won't see them on your screen. 
  4199.  However, you can still capture them in the debug log ("log debug"). 
  4200.  
  4201.  
  4202. ΓòÉΓòÉΓòÉ 2.14. Remote Access ΓòÉΓòÉΓòÉ
  4203.  
  4204. If your OS/2 2.x system is running IBM TCP/IP, it is possible to TELNET to your 
  4205. OS/2 system to have a CMD session, in which you can run only character-mode 
  4206. commands and applications. 
  4207.  
  4208. Depending on the kind of machine you are TELNETing from, you might be able to 
  4209. run only programs which use standard (or real keyboard) input and standard 
  4210. output.  If the program does VIO screen output it will run in a TELNET session 
  4211. only if you TELNETed into the OS/2 PC from another OS/2 PC, not from (for 
  4212. example) a UNIX or VMS machine, unless your terminal type is set to VT100 prior 
  4213. to establishing the connection to the OS/2 system.  You can use C-Kermit's SET 
  4214. TERMINAL TYPE VT100 command, or its SET TELNET TERMINAL-TYPE VT100 command. 
  4215.  
  4216. If you run a PM application (such as "help") while TELNETed to your OS/2 
  4217. system, your session will hang because control will have been transferred to 
  4218. the real keyboard, mouse, and screen.  Similarly, if you manage to invoke the 
  4219. OS/2 critical error handler during a character-mode application (for example, 
  4220. "dir a:" when there is no diskette in the A: drive). 
  4221.  
  4222. You can run C-Kermit in a remote TCP/IP session and tell OS/2 C-Kermit to SET 
  4223. LINE to a serial device and call up a third computer.  Thus OS/2 C-Kermit can 
  4224. be used as a modem server in the TCP/IP environment. 
  4225.  
  4226. However, at present you cannot transfer files between your local Kermit program 
  4227. and OS/2 C-Kermit when TELNET'd *to* OS/2 because sockets are different from 
  4228. file handles in OS/2 and are not passed to child processes via the "tty" file 
  4229. handle, as they are in UNIX in the same situation. 
  4230.  
  4231. It is also possible to get an OS/2 CMD session on a serial connection when 
  4232. dialing into your OS/2 system if you are running a product such as OS2YOU, but 
  4233. C-Kermit file transfer does not yet work in this environment either. 
  4234.  
  4235.  
  4236. ΓòÉΓòÉΓòÉ 2.15. OS/2 C-Kermit Wish List ΓòÉΓòÉΓòÉ
  4237.  
  4238. Items marked with (*) require conversion of C-Kermit from a VIO to a PM 
  4239. application, which will make it a much bigger and slower program. 
  4240.  
  4241.  o OS/2-style graphical user interface (*). 
  4242.  o 132-column mode via horizontal scrolling. 
  4243.  o True 80/132-column mode switching (*). 
  4244.  o True, rather than simulated, double-width, double-height lines (*). 
  4245.  o True, rather than simulated, underline and blink attributes (*). 
  4246.  o Tektronix and other graphics terminal emulations (*). 
  4247.  o Ability to execute VX-REXX programs (*). 
  4248.  o LK250/LK450 keyboard support. 
  4249.  o Improved VT-220 emulation, including character set designation and 
  4250.    invocation via ISO 4873 and 2022 rules. 
  4251.  o User-controllable beep pitch and duration. 
  4252.  o Support for non-IBM-compatible TCP/IP packages (e.g. Novell LWOS/2). 
  4253.  o Ability to run in remote mode on both serial (OS2YOU) and network (TELNET) 
  4254.    connections. 
  4255.  o 3270 terminal emulation 
  4256.  o APPC/CPI-C Network support 
  4257.  o A realistic DEC VTxxx font (*) 
  4258.  
  4259.  
  4260. ΓòÉΓòÉΓòÉ 2.16. Hints, Tips, and Cautions ΓòÉΓòÉΓòÉ
  4261.  
  4262.  
  4263. ΓòÉΓòÉΓòÉ 2.16.1. Performance ΓòÉΓòÉΓòÉ
  4264.  
  4265. Scrolling is slower in an OS/2 Window.  This is because OS/2 is operating in 
  4266. graphics mode (to simulate text mode) and must draw each dot (pixel) 
  4267. individually.  Fullscreen scrolling, which uses character mode, is much faster. 
  4268. But when running C-Kermit in fullscreen mode you lose the ability to cut and 
  4269. paste between applications. 
  4270.  
  4271. C-Kermit's performance on serial connections -- and the performance of any 
  4272. other OS/2 communication software program -- can be improved significantly by 
  4273. using a 16550AFN communications port controller (UART) rather than an 8250, 
  4274. 16450, 16550 (no A), or other unbuffered UART.  Unbuffered UARTs interrupt the 
  4275. CPU once per character, whereas a buffered UART interrupts every 8-14 (or more) 
  4276. characters.  Measurements during C-Kermit file transfer on an otherwise 
  4277. unloaded i486/50 EISA system under OS/2 2.0 show approximately 10%-25% CPU 
  4278. usage with a buffered UART and 75%-100% using an unbuffered one.  And of 
  4279. course, as with all other OS/2 applications (and OS/2 itself), a faster CPU and 
  4280. more memory also help. 
  4281.  
  4282. In any case, native OS/2 serial communications software is NOT as fast as DOS 
  4283. communications software (particularly MS-DOS Kermit) under DOS on the same 
  4284. machine because OS/2 communications must go the serial device driver, which 
  4285. adds the overhead of context switching; preservation of registers, stack 
  4286. adjustment, call gate, etc, whereas DOS applications can access the bare 
  4287. hardware directly. 
  4288.  
  4289. On the other hand, differences in speed of file transfers between native DOS 
  4290. and OS/2 programs should be marginal or even non-existent for current 
  4291. widely-used high-speed modems and CPU speeds.  In addition, the fact that all 
  4292. communication must be done through a device driver ensures device independence 
  4293. (as long as the driver's programming interface is compatible to the standard 
  4294. COM.SYS) and efficient use of the system resources, because all known OS/2 
  4295. communications device drivers are interrupt-driven, while many DOS 
  4296. communications software packages (other than MS-DOS Kermit) might not be.  The 
  4297. OS/2 device driver also allows multiple file transfers on one machine at the 
  4298. same time (if multiple modems are connected to it, for example), and allows 
  4299. other (even very CPU-intensive) tasks to run concurrently without affecting the 
  4300. file transfer speed(s), as long as enough CPU power is available. 
  4301.  
  4302.  
  4303. ΓòÉΓòÉΓòÉ 2.16.2. OS/2 Devices, Files, and Shells ΓòÉΓòÉΓòÉ
  4304.  
  4305. If you refer to a disk drive that is not ready, or to a file on such a disk 
  4306. drive, the OS/2 critical error handler might pop up and require action from the 
  4307. keyboard.  This occurs during execution of commands by inferior processes, such 
  4308. as DIRECTORY, REMOTE DIRECTORY, DELETE, REMOTE DELETE, etc.  It should not 
  4309. occur in file transfer operations.  The "hard error box" will put a halt to 
  4310. unattended, scripted operations, and it stops the operation of the OS/2 
  4311. C-Kermit server if there is no human in attendance.  To work around: add the 
  4312. line "AUTOFAIL=YES" to CONFIG.SYS and reboot.  This eliminates the hard error 
  4313. box, but it applies system-wide, not just to C-Kermit.  (The equivalent of 
  4314. AUTOFAIL=YES can be set on a per-process basis and C-Kermit does so for itself 
  4315. but it can't do this for any inferior processes started by it.) 
  4316.  
  4317. If the PUSH command, and related commands, do not work for you, check the 
  4318. definition of your OS/2 COMSPEC environment variable, i.e. make sure it 
  4319. contains the fully-specified pathname of a valid OS/2 executable shell program 
  4320. (such as C:\OS2\CMD.EXE), and/or the named program is in your OS/2 PATH. 
  4321.  
  4322. C-Kermit works with JP Software's 4OS2.EXE and any other replacement Command 
  4323. Shell.  The directory containing the shell must be located in the PATH in order 
  4324. for the replacement shell to be called correctly. 
  4325.  
  4326.  
  4327. ΓòÉΓòÉΓòÉ 2.16.3. The Deep Freeze ΓòÉΓòÉΓòÉ
  4328.  
  4329. There have been isolated reports of C-Kermit "freezing" on some systems.  This 
  4330. problem is not confined to C-Kermit, and has also been observed with a variety 
  4331. of other communications software packages: 
  4332.  
  4333.  o The most likely cause for freezing would be an interrupt conflict.  Make 
  4334.    sure your serial ports, CD ROM drive / controller and/or SCSI adapter, 
  4335.    Soundblaster, ISA card, network adapter, etc, are all using different and 
  4336.    unique IRQs. 
  4337.  
  4338.  o One user reported that the problem disappeared when he moved his serial 
  4339.    communication board farther away from his SCSI adapter board.  This might 
  4340.    have reduced electromagnetic interference, or altered the priority of the 
  4341.    adapters.  Sometimes, simply reseating the card can help. 
  4342.  
  4343.  o Another user (different system) made the problem go away by rebooting the 
  4344.    PC, which had been up for many weeks. 
  4345.  
  4346.  o The problem might be caused by a poorly built or configured system: noisy 
  4347.    bus, spurious interrupts, buggy internal modems, or buggy serial port driver 
  4348.    software.  For example, one user who noted that Kermit froze whenever he 
  4349.    told it to SET PORT COM2 also discovered that the same thing would happen if 
  4350.    he issued a MODE COM2 command at the CMD prompt, even when this is done 
  4351.    immediately after starting the system. 
  4352.  
  4353.  o Finally, mysterious problems like this are often cleared up by installing 
  4354.    patches (CSDs) or new releases of the software involved (e.g. TCP/IP or 
  4355.    other DLLs, serial drivers, OS/2 itself, etc). 
  4356.  
  4357.  
  4358. ΓòÉΓòÉΓòÉ 2.16.4. Modems and Dialing ΓòÉΓòÉΓòÉ
  4359.  
  4360. The list of modem types supported by C-Kermit is obtained by typing: 
  4361.  
  4362. C-Kermit> set modem ?
  4363.  
  4364. at the C-Kermit> prompt.  If you have a high-speed, error-correcting, 
  4365. data-compressing modem, you should generally use the following settings: 
  4366.  
  4367. set speed 57600 ; Or 38400, the highest supported by Kermit and the modem
  4368. set dial speed-matching off ; Use speed buffering.
  4369. set flow rts/cts            ; Use hardware flow control.
  4370.  
  4371. Always use hardware flow control if it is available (some operating systems do 
  4372. not support it).  If it is not, use Xon/Xoff ("software") flow control between 
  4373. your computer and the modem, which means you must tell C-Kermit to "set flow 
  4374. xon/xoff" and you must configure your modem for this too. 
  4375.  
  4376. If you have a modem that is not directly supported by C-Kermit, you can define 
  4377. a new modem type for it.  For example, suppose you have a Practical Peripherals 
  4378. PM14400FXMT V.32bis/V.42/V.42bis/MNP modem and you want to take full advantage 
  4379. of its features.  You can dial with this modem, taking advantage of the support 
  4380. for Hayes-like modems that is already built into C-Kermit, but substituting an 
  4381. initialization string particular to the PP14400: 
  4382.  
  4383. set modem hayes              ; Use Hayes-like dialog
  4384. set line <whatever>          ; Select the device your modem is on
  4385. set speed 57600              ; Use high speed
  4386. set dial speed-matching off  ; Lock the speed
  4387. set flow rts/cts             ; Use hardware flow control
  4388. set dial init ATQ0S2=43N1S37=11&&Q5S36=7S46=2S82=128\13
  4389.  
  4390. where: 
  4391.  
  4392.  Q0        Result codes enabled 
  4393.  S2=43     Escape character is "+" 
  4394.  N1        Enable modulation negotiation 
  4395.  S37=11    Enable V.32.bis 
  4396.  &K3       Enable RTS/CTS 
  4397.  &Q5       Enable error correction 
  4398.  S36=7      and compression with 
  4399.  S46=2      automatic speed buffering 
  4400.  S82=128   Pass BREAK signals through 
  4401.  
  4402.  This can be turned into a dialing macro, PPDIAL, which you can use in place of 
  4403.  the DIAL command: 
  4404.  
  4405.   define PPDIAL -
  4406.     set modem hayes, -
  4407.     set port 1, -          ; Change this appropriately
  4408.     set speed 57600, -
  4409.     set dial speed-matching off, -
  4410.     set dial init ATQ0S2=43N1S37=11&K3&Q5S36=7S46=2S82=128\13, -
  4411.     dial \%1, -
  4412.     if success set flow rts/cts, -  ; (If your C-Kermit version supports it)
  4413.     else end 1
  4414.  
  4415.  If you put this definition into your CKERMOD.INI file, then it will always be 
  4416.  available for you to use, for example: 
  4417.  
  4418.   C-Kermit> ppdial 7654321
  4419.  
  4420.  And you can also use REDIAL in the normal way. 
  4421.  
  4422.  See your modem manual for details about initialization strings.  Most modern 
  4423.  modems should be set up as in the example above but, naturally, the specific 
  4424.  modem commands differ. 
  4425.  
  4426.  Here are some sample modem initialization strings that should obtain settings 
  4427.  equivalent to those made for the PP14400, for various other types of 
  4428.  high-speed, error-correcting, data-compressing modems that are not 
  4429.  specifically supported by Kermit's DIAL command.  The maximum speed is shown 
  4430.  after the modem name.  These are offered in a form suitable for use in the SET 
  4431.  DIAL INIT-STRING command (modem-command backslashes doubled, \13 at the end 
  4432.  for carriage return), but with no guarantees -- see your modem manual for 
  4433.  explanations of the commands and for further details.  Each of these 
  4434.  initialization strings attempts to: 
  4435.  
  4436.  o Start modulation negotation at V.32bis (14400bps), enabling fallback. 
  4437.  o Fix the interface speed at 57600 or 38400 bps. 
  4438.  o Enable error correction and compression, enabling fallback. 
  4439.  o Allow BREAK signals to be passed through transparently. 
  4440.  
  4441.  AT&T DataPort 14400, 57600 bps: 
  4442.      AT Q0 X6 &C1 &D2 &Q0 S84=0 \\Q3 %B14400 S41=1 S78=0 \\N7 %C1 \\K5\13 
  4443.  
  4444.  Boca 14.4 Faxmodem, 57600 bps: 
  4445.      AT Q0W1&D2X4 S95=47 F10 S37=11 N1 &K3 S82=128 &Q5 S36=7 S46=138 \\N3 
  4446.      S48=7\13 
  4447.  
  4448.  Hayes Ultra 144, 38400 bps: 
  4449.      AT Q0W1X4 S87=28 &D2 S95=46 S37=11 N1 &K1 &K3 &Q5 S36=7 S38=1 S46=2 
  4450.      S48=7\13 
  4451.  
  4452.  Multitech MT1432, 57600 bps: 
  4453.      AT Q0 &Q1 X4 $SB57600 $MB14400 &E4 %E1 &E1 &E15 $BA0\13 
  4454.  
  4455.  Practical Peripherals 14400FXMT, 57600 bps: 
  4456.      AT Q0 W1 S95=47 &D2 X4 S2=43 N1 S37=11 &K3 &Q5 S36=7 S46=2 S82=128\13 
  4457.  
  4458.  USR Sportster or Courier, 57600 bps: 
  4459.      AT Q0 &S0 X4 &A3 &D2 &B1 &H1 &R2 &N0 &K1 &M4 &Y3\13 
  4460.  
  4461.  Zoom Telephonics 14400, 57600 bps: 
  4462.      AT Q0 W1 &D2 S95=47 X4 S37=11 &K3 S82=128 &Q5 S36=7 S46=138 S38=1\13 
  4463.  
  4464.  CAUTION:  Reportedly, these strings might be too long for some modems.  If 
  4465.  that is the case with yours, you can do one of the following: 
  4466.  
  4467.  o Shorten the string by removing spaces and/or commands that are not necessary 
  4468.    because they correspond to your modem's normal settings. 
  4469.  
  4470.  o Change your dialing macro to simply OUTPUT these commands in small groups 
  4471.    before issuing the DIAL command. 
  4472.  
  4473.  
  4474. ΓòÉΓòÉΓòÉ 2.16.4.1. Dialing Hints and Tips ΓòÉΓòÉΓòÉ
  4475.  
  4476. Remember:  You can't CONNECT to a modem and type the modem's dialing command 
  4477. (like "ATDT7654321") manually, unless you first tell C-Kermit to: 
  4478.  
  4479. SET CARRIER OFF 
  4480.  
  4481. This is because the CONNECT command requires the modem's Carrier Detect (CD) 
  4482. signal to be on, but the CD signal doesn't come on until after dialing is 
  4483. complete.  This requirement is what allows C-Kermit to pop back to its prompt 
  4484. automatically when the connection is hung up.  See the description of SET 
  4485. CARRIER in Using C-Kermit. 
  4486.  
  4487. Similarly, if your dialed connection drops when CARRIER is set to AUTO or ON, 
  4488. you can't CONNECT back to the (now disconnected) screen to see what might have 
  4489. happened unless you first SET CARRIER OFF. 
  4490.  
  4491. Automatic redialing:  Here is a simple macro that dials and keeps redialing 
  4492. every thirty seconds until it gets an answer.  Obviously, it can be elaborated 
  4493. with messages, counters, etc: 
  4494.  
  4495. define keep_on_dialing dial \%1, while failure { sleep 30, redial }
  4496.  
  4497. Don't SET FLOW RTS/CTS if your modem is turned off, or if it is not presenting 
  4498. the CTS signal.  Otherwise, the serial device driver might get stuck waiting 
  4499. for this signal to appear.  When dialing, it is better to give the SET FLOW 
  4500. RTS/CTS command after the DIAL command than before it. 
  4501.  
  4502. Here are a few points to clarify the purpose of SET DIAL SPEED-MATCHING: 
  4503.  
  4504.   1. This command does not do anything at all to the modem.  Rather, it is used 
  4505.      to inform C-Kermit about the modem's configuration: whether the modem's 
  4506.      interface speed is "fixed", or it changes its interface speed when a 
  4507.      connection is made.  In the latter case, C-Kermit changes its own speed in 
  4508.      response to the speed given in the modem's CONNECT message.  By default, 
  4509.      SPEED-MATCHING is ON, so Kermit does indeed attempt to change its speed. 
  4510.      If your modem is set to have a fixed interface speed, you must SET DIAL 
  4511.      SPEED-MATCHING OFF. 
  4512.  
  4513.   2. When DIAL SPEED-MATCHING is ON: 
  4514.  
  4515.      a. Your modem must be configured to report its *interface* speed in the 
  4516.         CONNECT message, rather than the connection (modulation) speed. 
  4517.  
  4518.      b. Your computer (and C-Kermit) must support all connection speeds that 
  4519.         might be reported by your modem.  SET SPEED ? will give you a list of 
  4520.         the speeds that your version of C-Kermit knows about. 
  4521.  
  4522.   3. If conditions (a) and (b) cannot be satisfied, then you must: 
  4523.  
  4524.      a. Configure your modem to lock its interface speed 
  4525.  
  4526.      b. Tell C-Kermit to SET DIAL SPEED-MATCHING OFF 
  4527.  
  4528.  If you have a high-speed, error-correcting, data-compressing, speed-buffering 
  4529.  modem, you should always SET DIAL SPEED-MATCHING OFF, and you should fix the 
  4530.  modem's interface speed as high as possible, preferably four times higher than 
  4531.  its maximum connection (modulation) speed to allow compression to work at full 
  4532.  advantage.  In this type of setup, you must also have an effective means of 
  4533.  flow control enabled between C-Kermit and the modem, preferably hardware 
  4534.  (RTS/CTS) flow control. 
  4535.  
  4536.  C-Kermit knows about a large number of modems, depending on how it was built 
  4537.  (type "set modem ?" and " show features" for further info).  This knowledge is 
  4538.  imbedded in the SET MODEM and DIAL commands.  If you are having trouble 
  4539.  dialing your modem, SET DIAL DISPLAY ON to watch the dialing interactions 
  4540.  between C-Kermit and your modem.  Consult pages 65-66 of Using C-Kermit for 
  4541.  modem-dialing troubleshooting instructions. 
  4542.  
  4543.  If it takes your call longer to be completed than the timeout interval that 
  4544.  C-Kermit calculates, you can use the SET DIAL TIMEOUT command to override 
  4545.  C-Kermit's value.  But beware: the modem has its own timeout for completing 
  4546.  the call.  If it is a Hayes-like modem, C-Kermit adjusts the modem's value too 
  4547.  by setting register S7.  But the maximum value for S7 might be smaller than 
  4548.  the time you need!  In that case, C-Kermit sets S7 to 0, 255, or other 
  4549.  (modem-specific) value to signify "no timeout". 
  4550.  
  4551.  WARNING:  Certain modems might have a maximum dial timeout shorter than what 
  4552.  Kermit expects it to be.  If Kermit attempts to set register S7 to a value 
  4553.  higher than your modem's maximum, the modem will say "ERROR" and you will get 
  4554.  a "Failure to initialize modem" error.  In that case, use SET DIAL TIMEOUT to 
  4555.  override C-Kermit's calculation of the timeout value with the highest value 
  4556.  that is legal for your modem, e.g. 60. 
  4557.  
  4558.  How to DIAL from a TCP/IP reverse terminal server (modem server): 
  4559.  
  4560.   1. (only if neccessary) SET TELNET ECHO REMOTE 
  4561.   2. SET HOST <terminal-server-ip-name-or-address> [ <port> ] 
  4562.   3. SET MODEM <modem-type> 
  4563.   4. (only if necessary) SET DIAL HANGUP OFF 
  4564.   5. DIAL <phone-number> 
  4565.  
  4566.  The order is important. 
  4567.  
  4568.  Although various modem-dialing strings are configurable, the DIAL MODEM-HANGUP 
  4569.  string is not.  For Hayes and Hayes-like modems it is ATQ0H0; the Q0 is to 
  4570.  ensure that a result code is produced.  In case the Q0 interferes with your 
  4571.  normal setup (for example, if you keep your modems set to Q2), and dropping 
  4572.  the connection does not restore the normal connection, you can define Kermit's 
  4573.  ON_EXIT macro to send the appropriate modem configuration commands when Kermit 
  4574.  exits, for example: 
  4575.  
  4576.   define on_exit if > \v(local) 0 output ATQ2\13
  4577.  
  4578.  The SET DIAL KERMIT-SPOOF command works only for Telebit and US Robotics modem 
  4579.  types; it is OFF by default.  You may wish to experiment with large packets 
  4580.  (1K or greater) and various window sizes with spoofing disabled in the modem. 
  4581.  In most situations the transfer rates achieved by Kermit with sliding windows 
  4582.  and long packets are better than with protocol spoofing turned on.  Also, 
  4583.  attribute (A) packets are not passed by current Telebit modems with spoofing 
  4584.  enabled so if they are desired spoofing must be turned off. 
  4585.  
  4586.  If C-Kermit's dialing methods are insufficient for your purposes, you can 
  4587.  write a C-Kermit script program to do the dialing.  Or you can use (or write) 
  4588.  another program to accomplish the dialing, and then run C-Kermit "underneath" 
  4589.  your dialing program by giving it the open file descriptor: 
  4590.  
  4591.   kermit -l n -m unknown
  4592.  
  4593.  where n is the numeric file descriptor. 
  4594.  
  4595.  Note:  When you give a SET DIAL DIRECTORY command, C-Kermit keeps your dial 
  4596.  directory file open until you give another SET DIAL DIRECTORY command, or 
  4597.  until you EXIT.  So, for example, you can't edit the dialing directory while 
  4598.  you have it open.  If you want to edit the dialing directory from within 
  4599.  Kermit, you can close it by giving a SET DIAL DIRECTORY command with no file 
  4600.  name.  Then you can open it again with SET DIAL DIRECTORY filename. 
  4601.  
  4602.  
  4603. ΓòÉΓòÉΓòÉ 2.16.4.2. Hayes and Compatible Modems ΓòÉΓòÉΓòÉ
  4604.  
  4605. C-Kermit should work correctly with Hayes and other modems that use the AT 
  4606. command set.  These include Hayes 1200, Hayes 2400, and Hayes 9600 bps modems, 
  4607. compatibles, as well as Telebit and HST modems.  See the next section for 
  4608. Telebit information.  C-Kermit sends AT commands to the modem and then reads 
  4609. the modem's response.  The software is designed to work whether the modem is 
  4610. configured to echo its commands (E1) or not (E0), and whether it replies with 
  4611. numeric (V0) or word (V1) result codes.  C-Kermit does not change the echoing 
  4612. state or result code mode of the modem.  However, C-Kermit issues the Q0 
  4613. command to the modem to ensure that it does produce result codes. C-Kermit 
  4614. assumes the modem's Command Line Terminator (S3) is 13 (carriage return).  If 
  4615. it isn't, C-Kermit's dialog with the modem probably won't work correctly. 
  4616.  
  4617.  
  4618. ΓòÉΓòÉΓòÉ 2.16.4.3. Telebit Modems ΓòÉΓòÉΓòÉ
  4619.  
  4620. There are numerous Telebit modem models, with differing capabilities and 
  4621. features.  C-Kermit tries to support them all in a model-independent way. To 
  4622. use a Telebit modem, any model, SET MODEM as follows: 
  4623.  
  4624.  TELEBIT 
  4625.      Dial and attempt to connect using the highest protocol appropriate to the 
  4626.      interface speed between the computer and the modem, and fall back 
  4627.      automatically to the highest protocol and speed supported by the answering 
  4628.      modem.  For example, if your interface speed is 19200 bps and you have a 
  4629.      PEP-capable Telebit, it will start in PEP mode, fall back to one of the 
  4630.      2400-bps standards, then one of the 1200 bps standards, etc, depending on 
  4631.      its configuration (see your Telebit manual). 
  4632.  
  4633.  PEP-TELEBIT 
  4634.      Dial in PEP mode, and connect only if the remote modem answers in PEP 
  4635.      mode. Does not work with Telebit models that do not support PEP.  See 
  4636.      Table III. 
  4637.  
  4638.  V32-TELEBIT 
  4639.      Dial in V.32 mode (9600 bps), fall back from there.  Works only with 
  4640.      Telebit models that support V.32; see Table III.  NOTE: V.32 calls are 
  4641.      supposed to work no matter what your interface speed is, but it has been 
  4642.      observed that when calling certain non-Telebit V.32 modems, the connection 
  4643.      is not made successfully unless C-Kermit's interface speed to the Telebit 
  4644.      is 9600. 
  4645.  
  4646.  V42-TELEBIT 
  4647.      Enable V.42 error correction, allowing fallback to MNP, and from there to 
  4648.      direct (no error correction).  NOTE: Fallback to MNP from V.42 is allowed 
  4649.      even if DIAL MNP-ENABLE is OFF.  Works only with Telebit models supporting 
  4650.      V.42 error control.  See Table III. 
  4651.  
  4652.  SLOW-TELEBIT 
  4653.      Dial at 2400 bps (V.22bis), fall back from there. 
  4654.  
  4655.  Before attempting to use Telebits at high speeds, there is one problem you 
  4656.  should be aware of: Most Telebit models do not "autobaud" at speeds higher 
  4657.  than 19200 or 38400.  If you want to make a high-speed call on such a modem, 
  4658.  you must access it first at a lower speed, then give it a command to change to 
  4659.  a higher speed, and then change Kermit's speed to match.  For example, on the 
  4660.  Telebit T3000: 
  4661.  
  4662.   C-Kermit> set speed 19200
  4663.   C-Kermit> connect
  4664.   AT                           (make sure it can read you)
  4665.   OK                           (it can)
  4666.   ATS51=7                      (change it to 57600 bps)
  4667.   OK                           (it says OK, then changes its speed)
  4668.   Alt-x                        (escape back to Kermit)
  4669.   C-Kermit> set speed 57600    (set Kermit to agree)
  4670.  
  4671.  Of course, you can automate this process using a script program.  Or if you 
  4672.  always want to dial out at 57600, you can save this setting in the modem, and 
  4673.  then it will always use this speed (and won't autobaud any more). 
  4674.  
  4675.  Telebit modems come in many models that differ not only as to features but 
  4676.  also which commands control which features.  The features, commands, and 
  4677.  acceptable S-register values (and their meanings) can vary not only among 
  4678.  models, but even among different ROM versions on the same model.  Rather than 
  4679.  have dozens of separate SET MODEM TELEBIT-xxx commands, C-Kermit queries the 
  4680.  modem for its model number with an ATI command, and then adjusts its modem 
  4681.  commands accordingly.  Responses to the ATI command are shown in Table I. 
  4682.  
  4683.   -------------------------------------------------------------------------
  4684.   Table I: Telebit Modem ATI Command Responses
  4685.   -------------------------------------------------------------------------
  4686.   ATI  Model Numbers        Examples
  4687.   ---  -------------        --------
  4688.   123                       Telebit in "total Hayes-1200" emulation mode
  4689.   960                       Telebit in Conventional Command (Hayes) mode
  4690.   961  RA12C                IBM PC internal original Trailblazer
  4691.   962  RA12E                External original Trailblazer, DCA Fastlink,
  4692.                               or Racal-Milgo RM1822
  4693.   963  RM12C                Rackmount original Trailblazer
  4694.   964  T18PC                IBM PC internal Trailblazer-Plus (TB+)
  4695.   965  T18SA, T2SAA, T2SAS  External TB+, T1600, T2000, T3000, WB, and later
  4696.                               or Ven-Tel Pathfinder EC18K (see below)
  4697.   966  T18RMM               Rackmount TB+
  4698.   967  T2MC                 IBM PS/2 internal TB+
  4699.   968  T1000                External T1000
  4700.   969  ?                    QBlazer
  4701.   971  T25SA                External T2500 or T1500 (see below)
  4702.   972  T25RM                Rackmount T2500
  4703.   -------------------------------------------------------------------------
  4704.  
  4705.  Certain incompatible models show the same response to ATI.  The ATI3 command 
  4706.  is used to differentiate among them, as shown in Table II. 
  4707.  
  4708.   ----------------------------------------------------------------------
  4709.   Table II: Telebit Modem ATI3 Command Responses
  4710.   ----------------------------------------------------------------------
  4711.   ATI       If ATI3 Response
  4712.   Response  Contains         Telebit Model Is
  4713.   --------  ---------------  ----------------
  4714.    965      "T1600"          T1600
  4715.    965      "T3000"          T3000
  4716.    965      "World"          WorldBlazer
  4717.    965      "Version B"      TrailBlazer-Plus or T2000 external version 1
  4718.    965      "TBSA"           TrailBlazer-Plus or T2000 external version 2
  4719.    965      "TBRM"           TrailBlazer-Plus or T2000 rackmount version 2
  4720.    965      "DC"             Ven-Tel Pathfinder EC18K (= TB+ version 1)
  4721.    971      "T1500"          T1500
  4722.    971      (anything else)  T2500
  4723.   ------------------------------------------------------------------------
  4724.  
  4725.  The features of the various models and the commands used by Kermit to control 
  4726.  them are shown in Table III.  The commands in the PEP column are used to force 
  4727.  PEP and allow compression (SET MODEM PEP-TELEBIT).  The commands in the V.32 
  4728.  column are used with SET MODEM V32-TELEBIT.  The commands in the V.42 column 
  4729.  are used with SET MODEM V42-TELEBIT.  The commands in the MNP column are used 
  4730.  if SET DIAL MNP-ENABLE is ON and the modem type is TELEBIT, PEP-TELEBIT, or 
  4731.  V32-TELEBIT, SLOW-TELEBIT, but not V42-TELEBIT; if SET MNP-ENABLE is OFF, the 
  4732.  S-registers in the MNP column are set to 0.  The Pass BREAK column shows the 
  4733.  commands used to ensure that the modem passes the BREAK signal through (rather 
  4734.  than treating it as an "escape-to-command-mode" signal). 
  4735.  
  4736.   -------------------------------------------------------------------
  4737.   Table III.  Telebit Modem Features and Commands
  4738.   -----+-------------------+-----+------+------+-----------+---------
  4739.        |                   |     |      |      |           |Kermit
  4740.   Model|     PEP           |V.32 | V.42 |MNP   |Pass BREAK | Spoof
  4741.   -----+-------------------+-----+------+------+-----------+---------
  4742.   TB   |S50=255 S110=1     | No  | No   |S95=2 |   S54=3   |PEP only
  4743.   TB+  |S50=255 S110=1     | No  | **   |S95=2 |   S54=3   |PEP only
  4744.   T2000|S50=255 S110=1     | No  | **   |S95=2 |   S54=3   |PEP only
  4745.   T1000|S50=255 S110=1     | No  | No   |S95=2 |   S54=3   |PEP only
  4746.   T2500|S50=255 S110=1     |S50=6| No   |S95=2 |   S54=3   |PEP only
  4747.   T1500|     No            |S50=6| **   |S95=2 |   S54=3   |PEP,V.32
  4748.   -----+-------------------+-----+------+------+-----------+---------
  4749.   T1600|     No            |S50=6|S180=2|S180=3|S61=0 S63=0|PEP,V.32
  4750.   T3000|     No            |S50=6|S180=2|S180=3|S61=0 S63=0|PEP,V.32
  4751.   QB   |     No            |S50=6|S180=2|S180=3|S61=0 S63=0|No
  4752.   WB   |S50=255S190=1S191=7|S50=6|S180=2|S180=3|S61=0 S63=0|PEP,V.32
  4753.   -----+-------------------+-----+------+------+-----------+---------
  4754.   **  For V.42 error control: "S50=0 S95=2 S97=1 S98=3 S106=1".
  4755.  
  4756.  All models but the QBlazer support Kermit spoof (but see below). 
  4757.  
  4758.  Group I (old command set): 
  4759.  
  4760.       TB = Original TrailBlazer (PEP, MNP, V.22bis, V.22, Bell 212A, 103)
  4761.      TB+ = TrailBlazer-Plus = TrailBlazer + V.42 (but only in new ROMs)
  4762.    T1000 = TrailBlazer-Plus, speed <= 9600, no PEP compression
  4763.    T2000 = TrailBlazer-Plus + SDLC (not used by Kermit, so same as TB+)
  4764.    T2500 = TrailBlazer-Plus + V.32 (9600 bps)
  4765.    T1500 = T2500 minus PEP
  4766.  
  4767.  Group II (new command set): 
  4768.  
  4769.          T1600 = V.32, MNP, V.22bis, V.22, V.23, Bell 212A & 103
  4770.   QB = QBlazer = T1600 without Kermit spoof and minus some other options
  4771.          T3000 = T1600 + V.32bis (14400 bps)
  4772.    WorldBlazer = T3000 + PEP + LZ and V.42bis compression +76800 +115200 bps
  4773.  
  4774.  C-Kermit does not attempt to control whether the modem changes its interface 
  4775.  speed to match the connection speed -- that is up to you; you can configure 
  4776.  the modem any way you prefer (using S51 or, to some extent on new-style modems 
  4777.  S180 and S181), but make sure that the modem's configuration agrees with 
  4778.  C-Kermit's DIAL SPEED-MATCHING setting.  When DIAL SPEED-MATCHING is ON (the 
  4779.  default), C-Kermit changes its interface speed automatically according to the 
  4780.  speed reported in the modem's CONNECT message; when it is OFF, C-Kermit does 
  4781.  not change speed. 
  4782.  
  4783.  Most Telebit modems do not autobaud at speeds above 9600 or 19200 bps unless 
  4784.  specially configured to do so, and even then most (maybe all) models will not 
  4785.  autobaud at all at 57600 bps.  Thus, to make a high-speed modem call with a 
  4786.  Telebit, follow these steps: 
  4787.  
  4788.   set modem telebit
  4789.   set port com1 ; or whatever
  4790.   set speed 19200
  4791.   connect
  4792.  
  4793.  Now type AT and carriage return to make sure you get an OK result.  Then type: 
  4794.  
  4795.   ats51=7
  4796.  
  4797.  and then carriage return.  This changes the Telebit's interface speed to 57600 
  4798.  (use ats51=6 if your modem's or computer's top speed is 38400). Now escape 
  4799.  back to Kermit and give these commands: 
  4800.  
  4801.   set speed 57600 ; or 38400
  4802.   set dial speed-matching off
  4803.   set dial mnp on
  4804.  
  4805.  and now you can place a high-speed, error-correcting, data-compressing call. 
  4806.  
  4807.  The DIAL KERMIT-SPOOF command is only effective for the Telebit models that 
  4808.  supply a Kermit spoof, that is, all but the QBlazer.  If the Telebit model is 
  4809.  TrailBlazer, TrailBlazer-Plus, T1000, T2000, or T2500, PEP mode is forced even 
  4810.  if your SET MODEM command specified a Telebit modem type other than 
  4811.  PEP-TELEBIT, because the Kermit spoof only works in PEP mode on those models. 
  4812.  On the other models supporting the Kermit spoof, it works on both PEP 
  4813.  connections and V.32 MNP (but not V.42) connections.  Thus, you might also 
  4814.  have to SET MODEM MNP-ENABLE ON in order to get the Kermit Spoof to work on 
  4815.  these newer models when making a V.32 connection. 
  4816.  
  4817.  SHOW DIAL does not show the complete initialization string for Telebit modems. 
  4818.  Telebit modems are initialized in several steps, and the initialization 
  4819.  command depends upon your current communication parameters, which model of 
  4820.  Telebit modem you have (which C-Kermit learns during the modem initialization 
  4821.  process), and other factors.  If you use the SET DIAL INIT-STRING command to 
  4822.  change the initialization string, this disables the multistep process and uses 
  4823.  only the string that you have specified. 
  4824.  
  4825.  If you want to use the built-in multi-step process, but you also want to 
  4826.  override one or more of the settings that are done in this process, or add 
  4827.  additional settings, you can use SET DIAL DIAL-COMMAND to add commands to the 
  4828.  dial string (which is normally ATD%s\13), for example "SET DIAL DIAL-COMMAND 
  4829.  AT&C1&D2S181=1DT%s\13". 
  4830.  
  4831.  
  4832. ΓòÉΓòÉΓòÉ 2.16.4.4. Dialing and Flow Control ΓòÉΓòÉΓòÉ
  4833.  
  4834. If you have SET FLOW to any of the hardware options supported by your version 
  4835. of C-Kermit, such as RTS/CTS, and if C-Kermit knows how to set the flow control 
  4836. on your modem, it will do this as part of the DIAL command. 
  4837.  
  4838. Caution:  If C-Kermit's FLOW-CONTROL setting is Xon/Xoff or other type of 
  4839. software flow control, C-Kermit will not attempt to change your modem's flow 
  4840. control setting, since software flow control is most commonly used end-to-end. 
  4841. One way to engage Xon/Xoff flow control directly between C-Kermit and the local 
  4842. modem is to change your modem's DIAL INIT-STRING to do it. 
  4843.  
  4844. Hardware flow control options are presently handled only for Telebit modems. On 
  4845. other modem types, you can set the flow control outside of Kermit, or change 
  4846. Kermit's DIAL INIT-STRING. 
  4847.  
  4848.  
  4849. ΓòÉΓòÉΓòÉ 2.16.4.5. TIES Modems ΓòÉΓòÉΓòÉ
  4850.  
  4851. A "TIES" (Time-Independent Escape Sequence) modem does not require any guard 
  4852. time around its escape sequence.  The following text: 
  4853.  
  4854. +++ATH0
  4855.  
  4856. if sent through a TIES modem, for example because you were uploading this file 
  4857. through it, could pop the modem back into command mode and make it hang up the 
  4858. connection.  Newer versions of the Telebit T1600 and T3000 (version LA3.01E 
  4859. firmware and later), and all WorldBlazers, use TIES. 
  4860.  
  4861. Although the probability of "+++" appearing in a Kermit packet is markedly 
  4862. lower than with most other protocols (see the File Transfer section below), it 
  4863. can still happen under certain circumstances.  It can also happen when using 
  4864. C-Kermit's TRANSMIT command.  If you are using a Telebit TIES modem, you can 
  4865. change the modem's escape sequence to an otherwise little-used control 
  4866. character such as Ctrl-_ (Control-Underscore): 
  4867.  
  4868. AT S2=31
  4869.  
  4870. A sequence of three consecutive Ctrl-_ characters will not appear in a Kermit 
  4871. packet unless you go to extraordinary lengths to defeat more than a few of 
  4872. Kermit's built-in safety mechanisms.  And if you do this, then you should also 
  4873. turn off the modem's escape-sequence recognition altogether: 
  4874.  
  4875. AT S48=0 S2=255
  4876.  
  4877. But when escape sequence recognition is turned off, "modem hangup" 
  4878. (<pause>+++<pause>ATH0<CR>) will not work, so you should also be sure to SET 
  4879. DIAL MODEM-HANGUP OFF. 
  4880.  
  4881.  
  4882. ΓòÉΓòÉΓòÉ 3. Errata & Corrigenda ΓòÉΓòÉΓòÉ
  4883.  
  4884. The following errors in Using C-Kermit (first edition, first printing) have 
  4885. been noted, most of them by Gisbert W. Selke, while translating the book into 
  4886. German: 
  4887.  
  4888.  PAGE       REMARKS 
  4889.   xviii     Fridrik Skulason's name is spelled with an eth, not a d. 
  4890.   xx        Ditto. 
  4891.   13-14     The list of systems supported by C-Kermit is not exhaustive. New 
  4892.             systems discovered since the printing date are listed in the file 
  4893.             CKCxxx.UPD, where xxx is the current edit number, e.g. 190. 
  4894.   46        The SET CARRIER description says that it doesn't take effect until 
  4895.             the next SET LINE command.  In fact, it can have an effect at 
  4896.             certain other times too, such as when you issue any 
  4897.             communication-oriented command that changes the communication 
  4898.             device modes.  The SET CARRIER AUTO description should say: 
  4899.             "Requires carrier during CONNECT, TRANSMIT, INPUT, OUTPUT, and 
  4900.             SCRIPT commands, but not during DIAL operations or file transfer." 
  4901.             These fine distinctions in SET CARRIER operation apply mainly to 
  4902.             System-V or POSIX based UNIX C-Kermit implementations and OS/2 
  4903.             C-Kermit, but (in general) not to others. 
  4904.   53        Table 3-2, HST-COURIER, contains extraneous typesetting information 
  4905.             ("Courier10PitchBT-Roman").  (This probably happened because an 
  4906.             error-correcting protocol was not used to download the final 
  4907.             PostScript to the printer :-)  Two new modem types, COURIER and 
  4908.             SPORTSTER have been added, which are the same as HST-COURIER.  The 
  4909.             description should say "US Robotics modems". 
  4910.   85        The command in the final line in the example, "send olga It's 
  4911.             765-4321", should be underlined. 
  4912.   91        SET KEY CLEAR added in 5A(190), restores default key mapping. 
  4913.   93         The description of SET SESSION-LOG fails to mention that XON and 
  4914.             XOFF are removed from a text-mode session log. 
  4915.  101        In the HINT inset, the words SEND and RECEIVE should be exchanged. 
  4916.  144        In REMOTE CD [ directory ] description, the brackets should be in 
  4917.             italics. 
  4918.  145        There should be no right parenthesis in REMOTE DIRECTORY [ 
  4919.             filespec) ]. 
  4920.  150        "Now start C-Kermit on the VAX..." should say "Now start C-Kermit 
  4921.             on the UNIX system..." 
  4922.  164        The description of compression predates the new SET REPEAT command, 
  4923.             described below. 
  4924.  172         Table 9-2.  The text fails to mention that the Chinese Roman, 
  4925.             Icelandic, and Japanese Roman sets are not used by C-Kermit. All 
  4926.             nine occurrences of accent acute (') by itself in column 6/00 
  4927.             should be accent grave (`).  Column 7/14 for Norwegian should show 
  4928.             macron (overline) rather than vertical bar. 
  4929.  174        Table 9-4, row 03, column 13 should be O-acute, not O-grave. 
  4930.  178        Next-to-last paragraph: "rlogin -8", not "rsh -8". 
  4931.  185        C-Kermit>set unknown-char-set (not "sent unknown-char-set"). 
  4932.  189        The description of JIS X 0201 says that it differs from a Latin 
  4933.             Alphabet in that the right half has some empty positions. Some 
  4934.             Latin Alphabets (e.g. Latin/Hebrew) also have empty positions. 
  4935.  195        Second example: "type diab.asc" instead of "type diab.lat". 
  4936.  197        6th line from bottom: MSCUSTOM.INI, not MSKERMIT.INI. 
  4937.  203        Examples should say XM (XMIT) rather than XF (XFER). 
  4938.  215        Example should say "duplex" rather than "duplux". 
  4939.  226        \m() variables are really not like \%a-style global variables, in 
  4940.             that the do not get recursively evaluated -- on the literal 
  4941.             definition is returned. 
  4942.  239        Line 3: "secret" should be "oofa". Middle paragraph, material 
  4943.             beginning "In these commands, literal strings to be compared must 
  4944.             not contain any spaces..."  As of version 5A(190), this is no 
  4945.             longer true.  Multiple words can be grouped together within braces, 
  4946.             e.g. "if equal {\%a} {here are four words} echo ok" 
  4947.  242        First line should have no comma at the end. 
  4948.  246        Description of label syntax should state that in a macro 
  4949.             definition, labels are set off by commas. 
  4950.  249        In the syntax description of the FOR command, the words "initial", 
  4951.             "final", and "increment" should be in italics, and there should be 
  4952.             no right angle bracket (>) following the word "increment".  Also, 
  4953.             the description of the FOR command fails to state explicitly that 
  4954.             the increment can be negative for counting backwards, in which case 
  4955.             the completion test is that the variable becomes less than the 
  4956.             final value, not greater than the final value.  Also, the book does 
  4957.             not mention that the value of the loop variable can be changed by 
  4958.             the commands in the loop contents, and this will affect the 
  4959.             execution of the loop. 
  4960.  250        In the wakeup-call example, the tests should be "if llt" rather 
  4961.             than "if not lgt". 
  4962.  252        Comments on the example should say "third is smaller or equal". 
  4963.  252        Text fails to mention that functions can not change their arguments 
  4964.             (i.e. arguments are passed by value). 
  4965.  254        \Flower() and \Fupper() functions only work correctly on 7-bit 
  4966.             ASCII letters. 
  4967.  258        Table 12-2, operator |.  Example should say \%a | 4 gives value 6. 
  4968.  264        Table 12-3, entry "double width line" should be \27#6, not \27#4. 
  4969.  264        Table 12-3, entry "set scrolling region" should refer to top row, 
  4970.             bottom row; not to row, column. 
  4971.  264        Table 12-3, entry "Stops transparent printing", Kermit Notation 
  4972.             column, should say "\27[4i", not "\27[0i". 
  4973.  264        Table 12-3, entry "Starts transparent printing", Kermit Notation 
  4974.             column, should say "\27[5i", not "\27[0i". 
  4975.  264        Table 12-3, entry "VT200 ID" should say "ESC [ 62c", not "ESC [ 
  4976.             6c". 
  4977.  264        Table 12-3, entry "VT300 ID" should say "ESC [ 63c", not "ESC [ 
  4978.             6c". 
  4979.  266-267    The section File Transfer Shortcuts does not apply to file transfer 
  4980.             with MS-DOS Kermit 3.13 or later.  The escape sequences associated 
  4981.             with the TERMINALR and TERMINALS macros in MS-DOS Kermit 3.12 and 
  4982.             earlier are now used for changing screen-writing direction during 
  4983.             terminal emulation, as on real DEC Hebrew VT terminals.  See the 
  4984.             MS-DOS Kermit 3.13 update notes (KERMIT.UPD) for detailed 
  4985.             information. 
  4986.  267        The description of the RETURN command says it may not be used in 
  4987.             the command list of a FOR, WHILE, or XIF command.  As of edit 190, 
  4988.             this is no longer the case. 
  4989.  268        Carl, not Karl, Friedrich Gauss. 
  4990.  269        The OPEN !READ command example for VMS should use /EXCLUDE= rather 
  4991.             than /EXCEPT=. 
  4992.  272        Line 14 of example should say "if = \%n \%d", not "if = \%i \%d". 
  4993.  275        Comma missing after closing brace of FOR loop in CALL macro. 
  4994.  276        Line 13: When you give a SERIAL (not LINE), NET, or CALL command... 
  4995.  286        The OUTPUT command in the middle of the page should say "\27[\?6c" 
  4996.             rather than "\27[\?1c". 
  4997.  287        SET INPUT TIMEOUT QUIT in the VMSLOGIN macro should be SET INPUT 
  4998.             TIMEOUT PROCEED.  The continuation hyphen is missing from three 
  4999.             lines.  The VMSLOGIN macro in the distributed CKERMIT.INI file 
  5000.             corrects these errors. 
  5001.  294        The CISLOGIN macro has several mistakes.  The following section: 
  5002.  
  5003.                         input 5 User ID:,-
  5004.                         output \%2\13,-
  5005.                         input Password:,-
  5006.                         output \%3\13,-
  5007.                         input 20 Enter Choice!,-
  5008.  
  5009.             Should be replaced by: 
  5010.  
  5011.                         input 5 User ID:,-
  5012.                         output \%1\13,-
  5013.                         input 5 Password:,-
  5014.                         output \%2\13,-
  5015.                         input 20 CompuServe Information Service,-
  5016.  
  5017.  299        Paragraph after "define ACCESS": "and assigned to the local 
  5018.             temporary variable \%9" should be removed.  Towards the bottom of 
  5019.             the page, the example and the last two paragraphs should be 
  5020.             adjusted to discuss the ACCESS macro definition as it appears at 
  5021.             the top of the page!  The \%9 variable is not used.  The example 
  5022.             "if def \%9 doaccess { \%2} \%9" should read "if success doaccess { 
  5023.             \%2} \v(return)".  In the first line of the last paragraph, "\%9" 
  5024.             should be changed to "\v(return)". 
  5025.  315        VMS examples: 
  5026.  
  5027.                         $ define compuserve $sys$system:kermit.exe sys$login:compuserve.cmd
  5028.                         $ define sprintnet  $sys$system:kermit.exe sys$login:sprintnet.cmd
  5029.  
  5030.             Should be: 
  5031.  
  5032.                         $ compuserve :== $sys$system:kermit.exe sys$login:compuserve.cmd
  5033.                         $ sprintnet  :== $sys$system:kermit.exe sys$login:sprintnet.cmd
  5034.  
  5035.  323-324    The description of C-Kermit program exit status codes fails to 
  5036.             mention the special method used by (Open)VMS, in which these codes 
  5037.             are assigned to the symbol CKERMIT_STATUS (see CKVKER.BWR). 
  5038.  336        PRINT, PING, and similar commands work by running the corresponding 
  5039.             system command (PRINT, lp, lpr, etc), which must be in the user's 
  5040.             PATH with execute permission, otherwise an error message appears 
  5041.             stating "command not found" or "permission denied", etc. 
  5042.  346        SET KEY CLEAR added in 5A(190), restores default key mapping. 
  5043.  352        The syntax of SET TELNET TERMINAL-TYPE should include italicized 
  5044.             square brackets around "text" to indicate that the text is 
  5045.             optional, and that if it is omitted, the TELNET TERMINAL-TYPE 
  5046.             reverts to the default, usually the terminal type of your login 
  5047.             session. 
  5048.  352        The entries for SET TERMINAL ANSWERBACK, ARROW-KEYS, KEYPAD-MODE, 
  5049.             and SCROLLBACK, etc, are missing.  These are OS/2-specific commands 
  5050.             (all of these except those new to edits 189 and 190 -- are 
  5051.             described in the OS/2 Appendix on page 432).  See the OS/2 updates 
  5052.             file. 
  5053.  353        The entries for SET TERMINAL TYPE and WRAP are missing. These are 
  5054.             also OS/2-specific commands (described on page 432). 
  5055.  354        SET TRANSMIT PAUSE description is inaccurate.  An accurate 
  5056.             description appears on page 204. 
  5057.  366        In Table II-2, "ATSO=0" should be "ATS0=1". 
  5058.  402-403    "define sys$input" and "define sys$output" in the examples on these 
  5059.             two pages should be "define /user_mode sys$input", etc.  This makes 
  5060.             the definitions effective only for the next program invocation.  In 
  5061.             that case the "deassign sys$input", "deassign sys$output" commands 
  5062.             can be removed. 
  5063.  403        The section "Running C-Kermit in DCL Command Procedures" fails to 
  5064.             describe how to use C-Kermit's exit status codes (see CKVKER.BWR). 
  5065.  409        The Backup date in the example at the top of the pages should not 
  5066.             be earlier than the Created and Revised dates.  The maximum record 
  5067.             length is 65534, not 32767. 
  5068.  419        The "stepping-stone" at the beginning of the OS/2 Appendix fails to 
  5069.             refer readers to the CKCKER.BWR and CKOKER.BWR files, and the OS/2 
  5070.             updates file CKOKER.UPD. 
  5071.  420        Footnote.  The COMDMA driver, though discussed in the OS/2 
  5072.             documentation, never actually existed.  The regular COM.SYS driver 
  5073.             is used instead. 
  5074.  425        The first paragraph in the Serial Communications section fails to 
  5075.             mention that other serial-port device names are also acceptable. 
  5076.  425        Bottom -- OS/2 C-Kermit now also supports VT100, VT220, and ANSI 
  5077.             terminal emulation. 
  5078.  428-432    These pages are largely obsolete as of version 5A(190).  The 
  5079.             CONNECT-mode actions shown in Table V-1, as well as the Arrow keys 
  5080.             (Table V-2), Keypad keys (Table V-3), now have \Kverbs associated 
  5081.             with them, exactly as in MS-DOS Kermit.  Additional \Kverbs are 
  5082.             provided for VT220 (LK201) F keys and editing keys. 
  5083.  430        Table V-3 fails to include the Num Lock key, and the accompanying 
  5084.             text does not mention the fact the fact that it can be assigned 
  5085.             with SET KEY.  See CKOKER.BWR, CKOVTK2.INI, and the OS/2 updates 
  5086.             file for further information. 
  5087.  431        Third paragraph.  "F1 through F4" should be "F1 through F10". Also, 
  5088.             the Home key should be included in the list of keys that control 
  5089.             screen rollback. 
  5090.  432        The description of SET TERMINAL ANSWERBACK is missing. Also, 
  5091.             numerous new SET TERMINAL commands have been added for OS/2; see 
  5092.             the OS/2 updates file. 
  5093.  435-439    Tables V-4 through V-9 need to be augmented with VT220 sequences. 
  5094.             See the OS/2 updates file. 
  5095.  438        No explanation of "nbits".  1=8-bit characters, 2=7-bit characters. 
  5096.             "baud" should be "bps". 
  5097.  440        Table V-10.  ESC W misplaced (alphabetically). 
  5098.  447        "SET FILENAMES" should be "SET FILE NAMES". 
  5099.  462        The text at the top of the page should say "ISO 8859", not "ISO 
  5100.             8858". 
  5101.  463        Table VIII-3.  Same as for Table 9-2, page 172.  Plus: Fr-Canadian 
  5102.             should be listed as Canadian-French. 
  5103.  486        The Cyrillic expansion for "KOI" is misspelled. 
  5104.  491        Reference [6].  The third Cyrillic word is misspelled. 
  5105.  495        Reference [48].  "Unterschiessheim" should be "Unterschleissheim". 
  5106.             Reference [50].  Second Cyrillic word misspelled. 
  5107.  ...        Hebrew character set tables need to be added. 
  5108.  Index      Needs entries for: 
  5109.  
  5110.     Command-line options 
  5111.     Delay 
  5112.     Encryption 
  5113.     Grouping of words in commands 
  5114.     Commands, grouping of words in 
  5115.     Length, of packets 
  5116.     Length, of files 
  5117.     Prompt, how to set 
  5118.     Spaces, in commands 
  5119.     Telenet (see SprintNet) 
  5120.     Terminal servers, dialing out from 
  5121.     umask 
  5122.  
  5123.  Please send reports of other errors to the authors, as well as suggestions for 
  5124.  improvements, additional index entries, and any other comments. 
  5125.  
  5126.  
  5127. ΓòÉΓòÉΓòÉ 4. Contact Information ΓòÉΓòÉΓòÉ
  5128.  
  5129. Contact information: 
  5130.  
  5131.    Kermit Development and Distribution 
  5132.    Columbia University Academic Information Systems 
  5133.    612 West 115th Street 
  5134.    New York, NY  10025  USA 
  5135.    Telephone: (USA) +1 212 854-3703 
  5136.    Fax: +1 212 663-8202 or +1 212 662-6442 
  5137.    Email: kermit@columbia.edu 
  5138.  
  5139.  
  5140. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  5141.  
  5142. Using MS-DOS Kermit, by Christine M. Gianone, Digital Press (1992), 1-55558-082-3.
  5143.  
  5144.  
  5145. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  5146.  
  5147. Kermit, A File Transfer Protocol, by Frank da Cruz, Digital Press (1987), ISBN