home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / e / oldfaq.txt < prev    next >
Internet Message Format  |  2020-01-01  |  128KB

  1. From the comp.protocols.kermit.misc newsgroup and elsewhere...
  2.  
  3. Most questions are already answered in the published documentation.  Reading
  4. the appropriate manuals (in conjunction with online release notes) will get you
  5. started, answer most of your questions, and will let you get the most out of
  6. your Kermit software: maximize the performance, write scripts to automate your
  7. communications tasks, and so on.  The Kermit Project is entirely
  8. self-supporting, and proceeds from sales of these manuals is our primary source
  9. of funding.  So please do purchase the manuals.
  10.  
  11. Most recent update: 5 April 2000
  12.                                Table of Contents
  13.    1 How to Find Kermit Software                                              i
  14.    2 What Is the Current Version of Kermit?                                   i
  15.    3 Where to Get Kermit Manuals                                              i
  16.    4 Why Is Kermit So Slow Compared to Zmodem?  (It Isn't!)                  ii
  17.    5 My Backspace Key Doesn't Work!                                          ii
  18.    6 How Do I Use MS-DOS Kermit over Trumpet Winsock or MS WfW TCP?         iii
  19.    7 How to Transfer Files through a 3270 Protocol Converter?                iv
  20.    8 Where Is the Key Map for 3270 Emulation?                                 v
  21.    9 How Can I Make MS-DOS Kermit Use COM3, COM4?                             v
  22.    10 MS-DOS Kermit Patches Don't Seem to Take Effect.                        v
  23.    11 I Can Transfer Text Files but Not Binary Files                          v
  24.    12 Binary Files Are Corrupted After Transfer                               v
  25.    13 Why Doesn't the HANGUP Command Work for Me?                             v
  26.    14 How Can I Make the DIAL/REDIAL Commands Keep Trying?                   vi
  27.    15 I Enabled Sliding Windows but It Looks Like Only One Is Used.          vi
  28.    16 How Do I Write a Script to Dial a Pager?                               vi
  29.    17 When C-Kermit Dials My V.32bis (or V.34) Modem, I Get the Error        vi
  30.       'Can't Change Speed to 14400 (or 28800)'
  31.    18 How Do I Use Kermit with Pine?                                        vii
  32.    19 How Do I Get a Session Log without All the Embedded Escape            vii
  33.       Sequences?
  34.    20 Kermit Doesn't Work Right with My (RPI) Error-Correcting Modem!       vii
  35.    21 What about Winmodems?                                                viii
  36.    22 What Kind of Modem Should I Buy?                                     viii
  37.    23 My Arrow Keys Don't Work                                               ix
  38.    24 MS-DOS Kermit under Windows Can't Find My Port                         ix
  39.    25 If I Have an Error Correcting Modem Why Do I Need Kermit Protocol?      x
  40.    26 How Do I Use 'SET KEY' with PC F-Keys, etc, in UNIX or VMS C-Kermit?    x
  41.    27 How Can I Exit from C-Kermit without Hanging Up?                        x
  42.    28 What Is SuperKermit?                                                    x
  43.    29 Is Kermit Software Year-2000 Compliant?                                 x
  44.    30 Is There a Kermit Library?                                             xi
  45.    31 How Do I Call up a Dialback Service?                                   xi
  46.    32 How Does the Numeric Keypad Work?                                     xii
  47.    33 How to Get Rid of the "OK to Exit?" Prompt?                           xii
  48.    34 How to Tell Kermit to Ignore Dialtone?                                xii
  49.    35 Where is the Dialing Script for My Modem?                             xii
  50.    36 I'm Having Terminal Emulation Problems with C-Kermit                 xiii
  51.    37 Divide Overflow in MS-DOS Kermit                                     xiii
  52.    38 Problems Using XYZMODEM External Protocols in C-Kermit               xiii
  53.    39 Tone Dialing Changes to Pulse after First Digit                      xiii
  54.    40 How to Transfer Files with the HP-48?                                xiii
  55.    41 I'm Having Trouble with F-Keys                                       xiii
  56. -------------------------------------------------------------------------------
  57.  
  58. 1 How to Find Kermit Software
  59.  
  60.   World-Wide Web:
  61.     http://www.columbia.edu/kermit/
  62.  
  63.   ftp: kermit.columbia.edu
  64.     This is the definitive source for Kermit software
  65.     on the Internet.  Other Kermit archives or "mirror sites"
  66.     are not necessarily complete, accurate, or up to date.
  67.  
  68.   Newsgroups:
  69.     comp.protocols.kermit.announce - Moderated
  70.     comp.protocols.kermit.misc     - Unmoderated
  71.  
  72.   E-mail:
  73.     kermit-orders@columbia.edu (Orders and order inquiries)
  74.     kermit-support@columbia.edu (Tech support)
  75.     kermit@columbia.edu (General -- not an FTP mail server!)
  76.  
  77.   Post:
  78.     The Kermit Project
  79.     Columbia University
  80.     612 West 115th Street
  81.     New York NY  10025-7799
  82.     USA
  83.  
  84.   Fax:  +1 212 663-8202  or  +1 212 662-6442
  85.  
  86. -------------------------------------------------------------------------------
  87.  
  88. 2 What Is the Current Version of Kermit?
  89.  
  90. Kermit 95 for Windows 95, 98, NT, and 2000:    1.1.20     Mar 31 2000
  91. Kermit 95 for OS/2 (32-bit):                   1.1.20     Mar 31 2000
  92. C-Kermit for OS/2 1.x (16-bit):                5A(190)    Oct  4 1994
  93. MS-DOS Kermit for DOS and Windows 3.x:         3.15       Sep 15 1997
  94. C-Kermit for UNIX, VMS, AOS/VS, OS-9:          7.0.197    Feb  8 2000
  95. C-Kermit for Stratus VOS:                      7.0.197    Feb  8 2000
  96. G-Kermit for UNIX:                             1.00       Dec 25 1999
  97. C-Kermit for Atari ST:                         5A(189)    Jun 30 1993
  98. IBM Mainframe Kermit for TSO:                  4.3.3      Feb 12 1999
  99. IBM Mainframe Kermit for CMS, CICS, and MUSIC: 4.3.2      Dec 16 1997
  100. Kermit-11 for RT-11:                           3.63       Sep 27 1997
  101. Kermit-11 for RSX, RSTS, etc:                  3.60       Jun 13 1989
  102. Mac Kermit (NOT A REAL RELEASE):               0.993(192) Jun  3 1996
  103.  
  104. Others (hundreds of them): See kermit/a/aavsys.hlp.
  105.  
  106. Also see the What's New section of our website.
  107. -------------------------------------------------------------------------------
  108.  
  109. 3 Where to Get Kermit Manuals
  110. MS-DOS Kermit, full-featured communications software for IBM and compatible PCs
  111. with DOS or Windows 3.x, is documented in:
  112.  
  113.     Christine M. Gianone, Using MS-DOS Kermit, Second Edition, Digital
  114.     Press / Butterworth-Heinemann, Woburn, MA, 1992, 345 pages, ISBN
  115.     1-55558-082-3.  Packaged with the current version of MS-DOS Kermit for
  116.     the IBM PC, PS/2, and compatibles on a 3.5-inch diskette.  In computer
  117.     and book stores, or order direct from Columbia University or from
  118.     Digital Press.
  119.  
  120. A German-language edition is also available:
  121.  
  122.     Christine M. Gianone, MS-DOS Kermit, das universelle
  123.     Kommunikationsprogramm, Verlag Heinz Heise, Hannover, Germany (1991),
  124.     414 pages.  Packaged with version 3.12 of MS-DOS Kermit for the IBM PC,
  125.     PS/2, and compatibles on a 5.25-inch diskette, including German-
  126.     language help files.  Deutsch von Gisbert W. Selke.  ISBN
  127.     3-88229-006-4.
  128.  
  129. And a French-language edition:
  130.  
  131.     Christine M. Gianone, Kermit MS-DOS mode d'emploi, Deuxieme edition,
  132.     Heinz Schiefer & Cie., Versailles (1993), 406 pages.  Packaged with
  133.     version 3.11 of MS-DOS Kermit for the IBM PC, PS/2, and compatibles on
  134.     a 5.25-inch diskette.  Adaption francaise: Jean Dutertre.  ISBN
  135.     2-901143-20-2.
  136.  
  137. There is also a Japanese book about MS-DOS Kermit, concentrating on the NEC
  138. PC9801:
  139.  
  140.     Hirofumi Fujii and Fukuko Yuasa, MS-Kermit Nyumon, Computer Today
  141.     Library 6, Saiensu-Sha Co., Ltd., publishers (1993), 160 pages.  ISBN
  142.     4-7819-0669-9 C3355 P1854E.
  143.  
  144. C-Kermit 6.0, full-function communication software for UNIX, VMS, AOS/VS, VOS,
  145. OS-9, QNX, the Commodore Amiga, and other platforms, is documented in:
  146.  
  147.     Frank da Cruz and Christine M. Gianone, Using C-Kermit, Second Edition,
  148.     Digital Press / Butterworth-Heinemann, Woburn, MA, 1997, 622 pages,
  149.     ISBN 1-55558-164-1.  In computer and book stores, or order direct from
  150.     Columbia University or from Digital Press.
  151.  
  152. A German-language edition is also available:
  153.  
  154.     Frank da Cruz und Christine M. Gianone, C-Kermit--Einfuehrung und
  155.     Referenz, Verlag Heinz Heise, Hannover, Germany (1994).  ISBN
  156.     3-88229-023-4.  Deutsch von Gisbert W. Selke.
  157.  
  158. The Kermit File transfer protocol is specified in the following book, which
  159. also includes tutorials on computers, file systems, data communications, and
  160. using Kermit:
  161.  
  162.     Frank da Cruz, Kermit, A File Transfer Protocol, Digital Press /
  163.     Butterworth-Heinemann, Worburn, MA, 1987, 379 pages, ISBN
  164.     0-932376-88-6.  In computer and book stores, or order direct from
  165.     Columbia University or from Digital Press.
  166.  
  167. Kermit software for hundreds of different computers and operating systems is
  168. available from Columbia University.  Contact Columbia for a free Kermit
  169. software catalog.
  170.  
  171. ENGLISH-LANGUAGE KERMIT BOOKS:
  172.  
  173.    1. In computer and book stores, or order direct from the publisher,
  174.       Digital Press / Butterworth-Heinemann with MasterCard, Visa, or
  175.       American Express:
  176.         +1 800 366-2665   (Woburn, MA office for USA & Canada,
  177.                            Toll-free M-F 8AM-6PM Eastern time)
  178.         +1 617 928 2613   (Newton, MA office for sales/marketing info)
  179.         +44 1865 314627   (Oxford, England distribution centre for
  180.         +61 03 9245 7111  (Melbourne, Vic, office for Australia & NZ)
  181.         +65 356-1968      (Singapore office for Malaysia, Singapore,
  182.                            Indonesia, Philippines, Thailand)
  183.         +27 (31) 2683111  (Durban office for South Africa)
  184.  
  185.    2. From Columbia University:
  186.         The Kermit Project
  187.         Columbia University
  188.         612 West 115th Street
  189.         New York NY  10025-7799
  190.         USA
  191.         Tel.  +1 212 854-3703
  192.         Fax.  +1 212 663-8202
  193.         E-Mail: kermit@columbia.edu
  194.       Domestic and overseas orders accepted.  Add $10 US PER BOOK for
  195.       shipping outside of North America.  Orders may be paid by MasterCard
  196.       or Visa, or prepaid by check in US dollars.  Add $65 bank fee for
  197.       checks not drawn on a US bank.  Price includes shipping.  Do not
  198.       include sales tax.  Quantity discounts are available.  Single-copy
  199.       US prices (in US dollars):
  200.         Using MS-DOS Kermit  . . . . . . . . . . . . . . . . .$ 44.95
  201.         Using C-Kermit . . . . . . . . . . . . . . . . . . . .$ 44.95
  202.         Kermit, A File Transfer Protocol . . . . . . . . . . .$ 39.95
  203.         All three  . . . . . . . . . . . . . . . . . . . . . .$ 90.00
  204.  
  205. GERMAN-LANGUAGE KERMIT BOOKS:
  206.   MS-DOS Kermit, das universelle Kommunikationsprogramm: DM 20,00
  207.   C-Kermit--Einfuhrung und Referenz: . . . . . . . . . . DM 25,00
  208.  
  209.   Verlag Heinz Heise GmbH & Co. KG
  210.   Helstorfer Strasse 7
  211.   D-30625 Hannover, GERMANY
  212.   Tel.  +49 (05 11) 53 52-0
  213.   Fax.  +49 (05 11) 53 52-1 29
  214.  
  215. FRENCH:  Kermit MS-DOS Mode d'Emploi:  . . . . . . . . . . .  FF 495,00
  216.   Heinz Schiefer & Cie.
  217.   45 rue Henri de Regnier
  218.   F-78000 Versailles, FRANCE
  219.   Tel.  +33 39 53 95 26
  220.   Fax.  +33 39 02 39 71
  221.  
  222. JAPANESE:  MS-Kermit Nyumon: . . . . . . . . . . . . . . . . .  1,800 Y
  223.   Saiensu-Sha Co., Ltd.
  224.   Abe-toku Building
  225.   2-4 Kanda-suda cho, Chiyoda-ku
  226.   Tokyo 101, JAPAN
  227.   Tel.  +81-3-3256-1091
  228. -------------------------------------------------------------------------------
  229.  
  230. 4 Why Is Kermit So Slow Compared to Zmodem?  (It Isn't!)
  231. Path: news.columbia.edu!usenet
  232. From: fdc@columbia.edu (Frank da Cruz)
  233. Newsgroups: comp.protocols.kermit.misc
  234. Subject: Re: [HELP] Slow Kermit Transfer ?!
  235. Date: 19 Sep 1994 14:15:42 GMT
  236. Organization: Columbia University
  237. Lines: 153
  238.  
  239. In article <35jrgsINNdq2@newsman.csu.murdoch.edu.au>
  240. anson@csuvax1.csu.murdoch.edu.au (Binh Anson) writes:
  241. > I used Kermit 3.13 for my PC, my modem has a speed of 14.4 K, but I
  242. > found that the downloading rate from the mainframe to my PC was
  243. > still very slow!  I tried Telix with SZ (Z-Modem Protocol), and it
  244. > was very fast compared to Kermit. Is there a way to accelerate
  245. > Kermit transfer ?
  246. >
  247. Yes.
  248.  
  249. But first, welcome to comp.protocols.kermit.misc.  This is the first day of
  250. operation of this unmoderated newsgroup.  I hope it will prove beneficial to
  251. all Kermit users.
  252.  
  253. To answer your question, somewhat longwindedly, since this Question is Asked so
  254. Frequently :-) ...
  255.  
  256. Zmodem is optimized for speed on the assumption that it has a clear 8-bit
  257. transparent channel with no blockages (small buffers, etc), and so, out of the
  258. box, when it works it goes fast.  The tradeoff is that it often does not work
  259. at all, in which case you have to configure it in various ways -- escaping of
  260. control characters, changing window size, etc.  In some cases it can't be made
  261. to work at all, either because of the nature of the connection, or because of
  262. one or both of the computers on the two ends.
  263.  
  264. Kermit, on the other hand, is configured to work -- i.e. transfer files -- out
  265. of the box, even under hostile conditions.  By default, it does not assume that
  266. control characters pass through transparently, nor that large buffers are
  267. available.  It does not even assume a full-duplex connection.  The tradeoff is
  268. speed.
  269.  
  270. In a perfect world, there would be no tradeoffs, but the world is far from
  271. perfect.  7-bit transmission is still extremely common, small buffers are very
  272. common, even in modern terminal servers and other communications processors,
  273. flow control is rarely implemented correctly and effectively, telephone lines
  274. are still noisy, and we still have a bewildering array of communication methods
  275. needed for accessing different kinds of hosts and services.  Most PCs are still
  276. shipped with non-buffered UARTs; many PCs have interrupt conflicts, noisy
  277. buses, etc; many modern modems are buggy.  The list goes on.  This is by way of
  278. demonstrating that Kermit's default tuning is not crazy, and goes a long way
  279. towards explaining its justified reputation for dependability.
  280.  
  281. Unfortunately, because of the tradeoffs necessary to achieve its reliability,
  282. Kermit has a reputation for slowness:
  283.  
  284.     Yes, Kermit transfers are slow if you use the default tuning.
  285.  
  286. However, you can make Kermit go as fast as the communication path will permit
  287. by changing a few parameters.  But first, here are some general principles that
  288. apply to all communications software:
  289.  
  290.    1. Ensure that you have an effective means of flow control enabled at
  291.       every juncture along the communication path (this applies to any
  292.       file transfer protocol).  For example, when using high-speed,
  293.       error-correcting modems, you should use some form of hardware flow
  294.       control, most commonly RTS/CTS.  You have to tell the software to
  295.       use it, AND you have to tell the modem to use it too -- if the flow
  296.       control methods of the PC and the modem do not agree, then data will
  297.       be lost.  The same is true of the modem at the other end of the
  298.       connection, and the computer or device it is connected to.
  299.  
  300.    2. If your modem is capable of data compression, use it.  Fix the
  301.       interface speed of the software to four times the connection speed
  302.       if possible -- e.g. for a V.32bis 14400 bps connection, use an
  303.       interface speed of 57600, or else the modem's compression capacity
  304.       is likely to be wasted.
  305.  
  306.    3. On network connections (e.g. TCP/IP), it is usually best to turn off
  307.       flow control entirely, because the underlying networking method
  308.       supplies fully effective flow control.
  309.  
  310. Now, to make Kermit go fast, follow these steps:
  311.  
  312.    1. Use real Kermit software, not the many shareware and commercial
  313.       packages, most of whose Kermit protocol implementations lack the
  314.       performance features listed below and/or the means for the user to
  315.       control them.
  316.  
  317.  
  318.    2. Use long packets.  Kermit's default packet length is 94.  You can
  319.       increase it to a theoretical maximum of 9024.  Give the following
  320.       command to the file receiver:
  321.  
  322.       SET RECEIVE PACKET-LENGTH 2000  ; (or other length)
  323.  
  324.       The longer you make the packets, the more efficient the file
  325.       transfer will be... IF IT WORKS.  If you make packets longer than
  326.       some buffer somewhere along the line, and effective flow control is
  327.       lacking, the transfer might not work.  Also, the longer the packet,
  328.       the greater the chance it will be hit by noise, and the longer it
  329.       takes to retransmit.  A good starting value to try is 1000.
  330.  
  331.  
  332.    3. On full duplex connections, use sliding windows.  Sliding windows
  333.       allow packets to be transmitted in a continuous stream, rather than
  334.       "stop and wait" style.  The command is:
  335.  
  336.       SET WINDOW 4 ; (or other number)
  337.  
  338.       The maximum is 32 (or less, depending on the implementation).  Give
  339.       this command to both Kermit programs.
  340.  
  341. For text files and uncompressed binary files, this should give you very good
  342. performance -- efficiencies in the 85%-100% range.
  343.  
  344. For compressed files, and certain other types of binary files, you can squeeze
  345. out another 20-25% efficiency by telling Kermit not to prefix a given list of
  346. control characters.  A typical sequence might be:
  347.  
  348.   SET CONTROL UNPREFIX ALL  ;  Unprefix all control characters.
  349.   SET CONTROL PREFIX 0 1 13 129 141 ...  ; Add back prefixes for these.
  350.  
  351. This might require some trial and error because there is no way that a
  352. communication software program can know what characters are safe and which ones
  353. are not on a particular connection.  For example, you might be going through an
  354. X.25 PAD where Ctrl-P will pop you back to the PAD prompt.  Or you might be
  355. going through a TELNET terminal server where Ctrl-] or Ctrl-^ will pop you back
  356. to the terminal server prompt.  Or the connection might be using Xon/Xoff flow
  357. control, and sending Ctrl-S as a data character might freeze the connection.
  358.  
  359. If you take all of these steps, using optimal packet lengths, window sizes, and
  360. unprefixing, you should achieve transfer rates comparable to, and often better
  361. than, the Zmodem implementations that you find in Telix, Procomm, and similar
  362. shareware and BBS packages; for example, on a V.32bis/V.42/V.42bis connection,
  363. RTS/CTS flow control, no parity, 57600 bps interface speed:
  364.  
  365.   Typical text files:        3500 cps (characters per second)
  366.   Uncompressed binary files: 2400 cps (e.g. PC KERMIT.EXE)
  367.   Compressed files:          1600 cps (e.g. ZIP files)
  368.  
  369. These figures come from Kermit News #5, June 1993, which is available on the
  370. Web and also via anonymous ftp from kermit.columbia.edu, directory kermit/e,
  371. file newsn5.txt (ASCII) or newsn5.ps (PostScript).  Also see Kermit News #4,
  372. newsn4.txt (.ps), for a detailed discussion of long packets and sliding
  373. windows.  [As of late March 1995, there are also html versions of these files
  374. suitable for Web access.]  Kermit software is available via anonymous ftp to
  375. kermit.columbia.edu [128.59.39.2], directory kermit and its subdirectories.
  376. There are literally hundreds of different Kermit programs for *almost* every
  377. machine and operating system imaginable.  The most widely used Kermit programs
  378. are:
  379.  
  380.    - MS-DOS Kermit for DOS and Windows 3.x.  No, this is not a native Windows
  381.      application, but yes, this is the Kermit software we recommend and support
  382.      for Windows 3.x.  File: kermit/archives/msvibm.zip
  383.  
  384.    - C-Kermit for UNIX, VMS, OS-9, AOS/VS, the Commodore Amiga, etc.
  385.  
  386.    - IBM Mainframe Kermit-370 for VM/CMS, MVS/TSO, CICS, and MUSIC.
  387.      kermit/b/ik*.*.
  388.  
  389. - Frank
  390.  
  391. POSTSCRIPT:  The Kermit software for Windows 95 and NT is Kermit 95.  It was
  392. first released in October 1995 (after this message was posted).
  393. -------------------------------------------------------------------------------
  394.  
  395. 5 My Backspace Key Doesn't Work!
  396.  
  397. From: fdc@columbia.edu (Frank da Cruz)
  398. Newsgroups: comp.protocols.kermit.misc
  399. Subject: Re: [?] Backspace key says, "^?"
  400. Date: 7 Jan 1995 21:26:44 GMT
  401. Organization: Columbia University
  402. Lines: 122
  403.  
  404. In article <D201pG.DMB@indirect.com>,
  405. Jim Monty <monty@indirect.com> wrote:
  406. > DISCLAIMER: I've looked for the answer to the following question in
  407. > _Using MS-DOS Kermit_ and in the documentation included with MS-DOS
  408. > Kermit 3.13.  I either couldn't find the answer or didn't understand
  409. > it if I did.
  410. >
  411. Thank you for consulting the documentation.
  412.  
  413. > I'm using MS-DOS Kermit 3.13 on an i80386SX machine running MS-DOS
  414. > 6.0, using a 14,400 bps Zoom VFP V.32bis modem.  Kermit is set for
  415. > VT220 terminal emulation and is using the Latin1 character set and
  416. > code page CP437.  I've not mucked with much in the initialization
  417. > files, so you may assume that any other parameters are still set to
  418. > the "factory" defaults.
  419. >
  420. > Alas, the question: In some online environments, my backspace key
  421. > behaves as one would expect it to.  In others, hitting the backspace
  422. > key results in either (1) nothing happening, or (2) the characters
  423. > "^?"  appearing on the screen.
  424. >
  425. Or (3) the Backspace key acts like an Interrupt character on the host
  426. (this usually happens with System V based UNIXes).
  427.  
  428. > I can, however, use Ctrl-H in these
  429. > situations.  In these exact same online environments (e.g., vi
  430. > insert mode when connected to my dial-up UNIX shell account) under
  431. > analagous circumstances, the other terminal emulator that I use,
  432. > Telemate Version 3.12, does not behave this way.  The backspace key
  433. > functions as a destructive backspace.
  434. >
  435. > I presume that the change I need to make to my MS-DOS Kermit
  436. > configuration is a simple one, but I can't figure it out.  And I've
  437. > never really wanted to bother to spend a lot of time trying to
  438. > figure it out myself.  (I want the magic straight from the wizards'
  439. > minds.)  Thanks, in advance, for taking the time to help me.
  440. >
  441. > Jim Monty, Kermit Cheerleader at Arthur Andersen LLP
  442. >
  443.  
  444. Well, Jim, I think it's finally time to classify this as a Frequently Asked
  445. Question and add it to the FAQ (kermit.columbia.edu:kermit/FAQ.TXT).
  446.  
  447. As you have discovered, different hosts and applications use different
  448. characters (or sequences) for destructive backspace.  The terminal emulator,
  449. Kermit or otherwise (including Telemate -- if its backspace key works for you
  450. in all circumstances, I think that's just a stroke of luck), has no way of
  451. knowing what host or application you are using, and therefore no way of knowing
  452. what to send when you press the Backspace key.
  453.  
  454. Of course, Kermit's Backspace key must send *something* "out of the box", so it
  455. uses one of the several most likely destructive backspace values, and in fact
  456. the one that is defined in ASCII to be destructive backspace, namely Rubout,
  457. also known as Delete or DEL, character number 127, which sometimes is displayed
  458. as "^?".  Lest anyone believe this is a frivolous choice, I quote from American
  459. National Standard X3.4-1977, Section 5.1, Control Characters:
  460.  
  461.     0/8 BS (Backspace).  A one-active-position format effector that moves
  462.     the position backward on the same line.
  463.  
  464.     7/15 (DEL). A character used primarily to erase or obliterate an
  465.     erroneous or unwanted character...
  466.  
  467. In cases where the default does not work, Kermit lets you redefine the
  468. Backspace key (or any other key) to send whatever you want it to send (or to
  469. take any other actions) with the SET KEY command.
  470.  
  471. The SET KEY command has two operands: a unique identifier for a key or key
  472. combination, called a scan code, and the value or action to be assigned to the
  473. key.  Scan codes are written with a preceding backslash (\).  The scan code for
  474. the Backspace key is \270.  The default definition for this key is \127,
  475. meaning the character whose numeric value is 127, i.e. DEL.
  476.  
  477. You can find out a key's scan code by consulting Table I-9 in the manual (pages
  478. 285-288), or by giving the SHOW KEY command to Kermit and then pressing the
  479. desired key or key combination.
  480.  
  481. Now, as you have discovered, some applications use Ctrl-H -- ASCII BS
  482. (Backspace) -- for destructive backspace.  Consulting the ASCII table on page
  483. 275, you see that the ASCII code for BS is 8.  So to make PC's Backspace key
  484. send BS instead of DEL, give this command:
  485.  
  486.   SET KEY \270 \8
  487.  
  488. If you use Kermit only to connect to hosts and services that use BS for
  489. destructive backspace, then you can put this command in your MSCUSTOM.INI file,
  490. and it will take effect automatically every time you start Kermit.
  491.  
  492. But some people (like yourself) switch between different hosts and/or services
  493. that expect different characters or sequences for destructive backspace.  You
  494. can, of course, give Kermit the appropriate command every time you switch from
  495. one to another:
  496.  
  497.   SET KEY \270 \8    ; Backspace sends BS
  498.  
  499. or:
  500.  
  501.   SET KEY \270 \127  ; Backspace sends DEL
  502.  
  503. or you can use the macros that are already defined in MSKERMIT.INI for this.
  504. In version 3.14, for example, we have macros with names like VAX and IBM.  The
  505. VAX macro sets things up (including the Backspace key) for communicating with
  506. VAXes and VAX-like systems, and that means, among other things, setting the
  507. Backspace key to send DEL.  The IBM macro, on the other hand, is used for
  508. communicating with IBM mainframes in linemode, where BS is used.
  509.  
  510. You can use these macros as they are, or you can write your own macros based
  511. upon them and add them to your MSCUSTOM.INI file.  To use a macro, just type
  512. its name at the MS-Kermit> prompt.
  513.  
  514. Suppose, for example, you normally access two different systems: a BBS (which
  515. uses 8-bit characters, ANSI terminal emulation, and BS) and a UNIX system
  516. (which uses 7-bit characters, VT220 emulation, and DEL), and these items need
  517. to be changed when you switch between the two.  You could write two macros such
  518. as these:
  519.  
  520.   define bbs set term byte 8, set term type ANSI, set key \270 \8
  521.   define unix set term byte 7, set term type vt220, set key \270 \127
  522.  
  523. And then each time you want to use the BBS, you just type "bbs" at the
  524. MS-Kermit> prompt, and each time you want to access the UNIX system, you type
  525. "unix".
  526.  
  527. Of course, you could take this process even further, and turn the BBS and UNIX
  528. macros into complete connection-establishment and login scripts, following the
  529. directions in Chapter 14 of the manual, on script programming.
  530.  
  531. [NOTE: In Kermit 95, you can choose the Backspace-key action for each
  532. connection on the Dialer Terminal page for that connection.]
  533.  
  534. - Frank
  535. -------------------------------------------------------------------------------
  536.  
  537. 6 How Do I Use MS-DOS Kermit over Trumpet Winsock or MS WfW TCP?
  538.  
  539. Date: Sun, 8 Jan 95 13:27 EST
  540. To: ....
  541. From: kermit@columbia.edu
  542. Subject: Re: Using Kermit with Trumpt Winsock
  543. > I have an internet connection (SLIP) using Trumpet Winsock to
  544. > establish the connection to the server under windows.  I'd like to
  545. > use kermit at that point to telnet to my company's computer.  I've
  546. > filled in the IP addresses in my custom file, but when I run kermit,
  547. > and try to telnet, I get the message:
  548. >
  549. >   Cannot attach to an Ethernet Packet Driver....
  550. >
  551. > Can you give me an idea of what I'm doing wrong?
  552. >
  553.  
  554. The rule for DOS, Windows, and similar PC operating systems is:
  555.  
  556.     ONE APPLICATION PER PROTOCOL PER NETWORK BOARD
  557.  
  558. This applies also to serial ports being used as if they were network boards,
  559. e.g. via SLIP.
  560.  
  561. If you are talking about Windows 95 or Windows NT, you can use Kermit 95, which
  562. does use Winsock -- any 32-bit Winsock stack (Microsoft, FTP Software, or
  563. Trumpet).
  564.  
  565. If you are talking about Windows 3.x, read on.
  566.  
  567. Now, Trumpet Winsock is using (i.e. registered for) the TCP protocol on your
  568. "network board".  Thus, when you try to activate Kermit's own built-in TCP/IP
  569. networking, it finds that it can't register TCP because TCP is already
  570. registered.  Thus it "Cannot attach to ... Packet Driver".
  571.  
  572. One might think it would be possible, then, to tell Kermit to "use" Winsock.
  573. But Winsock TCP/IP stacks are strictly for pure Windows (and NT) programs, not
  574. for DOS programs.  MS-DOS Kermit is a "Windows-aware" DOS program, but a DOS
  575. program nevertheless; it runs from the DOS prompt and within DOS emulator boxes
  576. in various operating systems, and cannot access Winsock.  If you want to make a
  577. TCP/IP connection with MS-DOS Kermit when Winsock is running, you have to
  578. unload Winsock and use Kermit's own built-in TCP/IP capability directly over an
  579. Ethernet- or SLIP-class packet driver or an ODI driver.  Or else install a
  580. second network adapter.  Or...
  581.  
  582. It is PERHAPS POSSIBLE, but not necessarily recommended, to run Kermit's TCP/IP
  583. stack alongside of Winsock using Dan Lanciani's NDIS3PKT shim, or to use the
  584. PKTMUX TCP/IP multiplexor.  Use these methods at your own risk.
  585.  
  586. NDIS3PKT, in Dan's words:
  587.  
  588. "Ndis3pkt is a Windows virtual device (VxD) that provides multiple emulated
  589. packet driver interfaces in Windows VMs and converts to NDIS3.  It knows how to
  590. route packets to the correct VM at upcall time (similar to the function of
  591. WINPKT) and it includes an optional tcp multiplexor to allow multiple tcp/ip
  592. stacks to coexist with the same IP address (similar to the function of PKTMUX).
  593. It can also support multiple boards, but that isn't a much-used feature.  It
  594. can also emulate a class 1 (Ethernet) packet driver on top of Token Ring.  In
  595. other words, ndis3pkt is intended to be a one-stop solution to packet driver
  596. applications over NDIS3.
  597.  
  598. "Now, when people talk about ``Winsock'' they often mean one of the Winsock
  599. providing packages that runs in the Windows system VM, e.g., Trumpet.  Because
  600. Trumpet Winsock is really just another packet driver application, ndi3pkt is
  601. perfectly happy to multiplex it along with any number of DOS applications.
  602. Thus, from a high-level viewpoint, users see this as sharing DOS applications
  603. with Winsock.  In reality, ndis3pkt knows nothing about Winsock, but the net
  604. effect is the same."
  605.  
  606. NDIS3PKT is in pub/ndis3pkt on newdev.harvard.edu, available by by anonymous
  607. ftp.  Be sure to read the license in the accompanying README file, and be sure
  608. you have a version dated 17 Mar 95 or later.
  609.  
  610. NOTE: As of January 1997, this location has moved to:
  611.  
  612. ftp://hsdndev.harvard.edu/pub/ndis3pkt
  613.  
  614. http://ndtl.harvard.edu/ndis3pkt/
  615.  
  616. (Later, August 1995, more from Dan):
  617.  
  618. "Some people have been able to run kermit & MSTCP32 w/WfWG 3.11 together using
  619. my ndis3pkt.386 driver.  The trick is to use different IP addresses for MSTCP32
  620. and kermit.  More generally, you need one IP address for MSTCP32 and one IP
  621. address for all your other packet-driver applications.  This is because,
  622. although ndis3pkt includes a tcp session multiplexor that allows multiple
  623. packet-driver-based tcp/ip stacks to share the same IP address on one machine,
  624. ndis3pkt has no control over the MSTCP32 stack.  If you try to use the same
  625. address for both, MSTCP32 will reset kermit's connections and such.
  626.  
  627. "Some people have been unable to get the MSTCP32+kermit+ndis3pkt combination to
  628. work in configurations that appear superficially identical to those which work
  629. elsewhere.  I suspect there is some minor detail of interest to be found here,
  630. but I don't know what it is. :)"
  631.  
  632. For additional details, see discussions in comp.protocols.tcp-ip.ibmpc and in
  633. the ndis3pkt documentation.
  634.  
  635. PKTMUX, also a risky proposition, is nevertheless, reportedly used with success
  636. at some sites.  As one user reports, "I would not dismiss the use of a packet
  637. driver, PKTMUX and as many PKTDRV stubs as you need.  We use that setup with
  638. TCP/IP Kermit, NCSA Telnet and winsock compliant apps.  If you also use QEMM,
  639. none of that takes ANY low memory and it is stable."
  640. -------------------------------------------------------------------------------
  641.  
  642. 7 How to Transfer Files through a 3270 Protocol Converter?
  643.  
  644. From: fdc@columbia.edu (Frank da Cruz)
  645. Newsgroups: comp.protocols.kermit.misc
  646. Subject: Re: Kermit File Transfer and tn3270
  647. Date: 16 Jan 1995 16:46:18 GMT
  648. Organization: Columbia University
  649. Lines: 169
  650.  
  651. In article <173276AEB.BDESIMON@uga.cc.uga.edu>,
  652. Bert DeSimone <BDESIMON@UGA.CC.UGA.EDU> wrote:
  653. > Gotta figure this has come up before.  We are evaluating a terminal
  654. > server that supports tn3270.  No problem using MS-Kermit to connect
  655. > to the terminal server and connect via tn3270 to an IBM mainframe.
  656. > However, file transfers (either invoking server on the mainframe or
  657. > not) always fail.  Connecting through this same terminal server to
  658. > the same mainframe through a 7171 presents *no* problem with file
  659. > transfer.  (BTW: I don't have to be using tn3270 on a terminal
  660. > server; file transfers with Kermit using tn3270 on a Unix host fail
  661. > the same way).
  662. >
  663. > I am speculating that the mainframe Kermit must send a transparent
  664. > mode sequence, ordinarily processed by the protocol converter, that
  665. > is causing the problem.
  666. >
  667.  
  668. One of the major strengths of the Kermit protocol is its ability to transfer
  669. files with IBM mainframes over a wide variety of connection types, and there is
  670. an excellent Kermit software program for the IBM mainframe, which is available
  671. for VM/CMS, MVS/TSO (and ROSCOE), CICS, and MUSIC.  The current version is
  672. 4.3.2.
  673.  
  674. All of the Kermit books and manuals ("Kermit, A File Transfer Protocol", "Using
  675. MS-DOS Kermit", "Using C-Kermit", and the IBM mainframe Kermit online manuals)
  676. describe the process(es) in some detail.  Here is a brief summary.
  677.  
  678. Half-duplex (local-echo), line-at-a-time connections are generally handled by
  679. the "ibm" macro that is built in to MS-DOS Kermit and C-Kermit, which performs
  680. the following protocol-related settings:
  681.  
  682.   set local-echo on
  683.   set parity mark
  684.   set flow none
  685.   set handshake xon
  686.  
  687. Full-screen sessions go through a 3270 terminal emulator.  This can reside
  688. anywhere between the client software (such as MS-DOS Kermit) and the mainframe.
  689. For the past 10 or 20 years, the most common place to find the 3270 emulator
  690. was on a special purpose "protocol converter": a box that has serial lines on
  691. one side and a connection to the mainframe on the other.  This box generally
  692. works by tricking the mainframe into thinking it is a "control unit" with
  693. multiple 3270 terminals attached, and at the same time tricking the terminals
  694. into thinking they are communicating with a "normal" ASCII character-at-a-time
  695. host.  The box converts between 3270 data streams and ASCII terminal (e.g.
  696. VT100) conventions.  This includes ASCII/EBCDIC character-set conversion,
  697. cursor positioning and screen painting, and keystroke interpretation.
  698.  
  699. As you can imagine, all of these conversions would normally have a disastrous
  700. effect on Kermit protocol packets, and also upon any other type of data that
  701. has to be transmitted "as is", without conversion, such as graphics terminal
  702. directives.  Thus, many protocol converters support a "transparent mode", that
  703. allows the mainframe host to command them to turn off their conversion
  704. functions, and at a later time, turn them back on.
  705.  
  706. When everything works as planned, the only Kermit commands required for going
  707. through the protocol converter are:
  708.  
  709.   set flow xon/xoff ; (usually)
  710.   set parity even   ; (or other)
  711.  
  712. Everything else corresponds to the normal Kermit defaults (remote echo, no
  713. "handshake", etc).
  714.  
  715. Unfortunately, the method for entering and leaving transparent mode differs
  716. from one 3270 emulation product to another.  Ideally, there are two components:
  717. (1) the identification phase, in which the mainframe software issues a special
  718. instruction that causes the protcol converter to respond in a unique (but
  719. harmless) way; and (2) the actual enter- and exit-transparent-mode directives.
  720.  
  721. IBM Mainframe Kermit needs to know which kind of transparency, if any, is used
  722. by the protocol converter so it can be put into transparent mode at the
  723. beginning of packet protocol and taken out of it upon return to interactive
  724. command mode.  There are several ways that mainframe Kermit can go about this.
  725. First, you can use the SET CONTROLLER command to tell it which style of
  726. transparency is used by the protocol converter.  Second, mainframe Kermit can
  727. be set up by the system administrator to always use a particular style.  Third,
  728. it can attempt to "autodiscover" the controller type by issuing various types
  729. of identification queries and checking the results.  The third method is not
  730. very reliable, however, since many types of protocol converters fail to respond
  731. to these queries even when they do implement a particular style of
  732. transparency.
  733.  
  734. Nowadays, special-purpose protocol converters are giving way to general purpose
  735. terminal and compute servers that include a "tn3270" function.  tn3270 is a
  736. special kind of TELNET program that also performs 3270 emulation, and requires
  737. that the mainframe be on a TCP/IP network and have a TN3270 server.  Here are
  738. some examples:
  739.  
  740.    1. UNIX tn3270.  Most UNIX systems come with a tn3270 program that lets
  741.       you make a full-screen connection to an IBM mainframe.  Once you
  742.       have made the connection, you should be able to start Kermit on the
  743.       mainframe, give it a SEND, RECEIVE, or SERVER command, escape back
  744.       to your terminal emulator (e.g. MS-DOS Kermit), and transfer files
  745.       without any special settings.  If you have trouble with this, then:
  746.  
  747.          - Ask mainframe Kermit to "show controller".  If it doesn't say
  748.            Series/1, then tell it to "set controller series1".
  749.  
  750.          - Try using shorter packets.  The maximum length that can pass
  751.            through the protocol converter might be less than what you are
  752.            trying to use.  A typical maximum value might be 1700.
  753.  
  754.          - Tell one or both Kermit programs to "set parity space".
  755.  
  756.    2. VMS tn3270.  Depends on the TCP/IP version.  TGV Multinet, for
  757.       example, does not claim to support transparent mode.
  758.  
  759.    3. Cisco terminal server tn3270.  Current releases of Cisco terminal
  760.       server software include a tn3270 feature that is supposed to permit
  761.       Kermit transfers, but it has bugs.  Sometimes these bugs can be
  762.       worked around by using the methods listed in (1) above and
  763.       specifying VERY short packets, like 30 or 40 bytes.  Sometimes they
  764.       can't be worked around at all.  A future release of Cisco software
  765.       (probably 10.3) will include new tn3270 software that implements
  766.       Series/1-style transparency correctly, and allows Kermit transfers
  767.       of both text and binary files in both directions using packet
  768.       lengths up to about 1900 (or whatever the total screen size is).
  769.  
  770. If you try all of these workarounds with your terminal server and still get
  771. failed transfers, make packet logs and/or debug logs in both Kermit programs to
  772. find out what the terminal server is delivering to each Kermit program, and
  773. report the misbehavior to your terminal server vendor.
  774.  
  775. For further information about specific protocol converters and how to configure
  776. IBM Mainframe Kermit for them, please read the ik0aaa.hlp file that comes with
  777. IBM Mainframe Kermit.
  778.  
  779. Finally, it is possible to transfer files through a 3270 fullscreen connection
  780. even when 3270 emulator can't be put into transparent mode at all.  You can
  781. read about this in the second edition of Using C-Kermit and the MS-DOS Kermit
  782. update notes file (KERMIT.UPD).  Quoting from the latter:
  783.  
  784. "Doomsday Kermit" (DDK) techniques allow file transfer with IBM mainframes
  785. through 3270 protocol converters that do NOT support transparent mode, to be
  786. used in conjunction with IBM Mainframe Kermit's SET CONTROLLER FULLSCREEN
  787. command on VM/CMS, MVS/TSO, or CICS.  MS-DOS Kermit 3.13 or later and IBM
  788. Mainframe Kermit 4.2.3 or later required.  Commands:
  789.  
  790.   SET PARITY EVEN        ; Or whatever
  791.   SET FLOW XON/XOFF      ; Or whatever
  792.   SET SEND START 62      ; Greater-than sign
  793.   SET RECEIVE START 62   ; Ditto
  794.   SET BLOCK BLANK-FREE-2 ; New block-check type
  795.   SET HANDSHAKE NONE
  796.  
  797. BLANK-FREE-2 is a new block-check type, exactly like type 2, except encoded to
  798. never contains blanks.  Give IBM Mainframe Kermit the following commands:
  799.  
  800.   SET CONTROLLER FULL
  801.   SET SEND START 62
  802.   SET RECEIVE START 62
  803.   SET BLOCK BLANK-FREE-2
  804.   SET HANDSHAKE 0
  805.  
  806. Doomsday Kermit file transfers are not as reliable as regular Kermit protocol
  807. transfers, and they are much slower.  Use this method only as a last resort;
  808. that is, only when you can't get a transparent-mode fullscreen connection or a
  809. linemode connection to the mainframe.
  810. (end quote)
  811.  
  812. And beyond finally: in the future, we expect to add 3270 emulation to the
  813. Kermit software itself, so you will be able to make tn3270 connections directly
  814. from Kermit to the mainframe without having to go through a "black box" for the
  815. conversion.  Of course, Kermit software will handle transparency correctly (and
  816. automatically).  (And no, I can't estimate when built-in 3270 emulation will be
  817. available.)
  818.  
  819. - Frank
  820. -------------------------------------------------------------------------------
  821.  
  822. 8 Where Is the Key Map for 3270 Emulation?
  823. Real 3270 terminals have all sorts of keys that regular ASCII terminals (and
  824. PCs and Macintoshes and UNIX workstations, etc) do not have.
  825.  
  826. A big part of the job of a 3270 protocol converter is to convert between ASCII
  827. keystrokes (including escape sequences) and 3270 keys such as PA1 through PA3
  828. and PF1 through PF24.
  829.  
  830. The administrator of the 3270 protocol converter creates the mapping.  So in
  831. order to make a 3270 key map for Kermit, you first have to find out what the
  832. mapping in the protocol converter is, and then assign the ASCII values
  833. (characters or sequences) that correspond to each 3270 key to the desired PC
  834. (or Mac, etc) key.
  835.  
  836. It is the responsibility of each site administrator to document the key
  837. mappings used by its protocol converters.  Once you know the ASCII values that
  838. correspond to each 3270 key, then it's easy to create Kermit key bindings.
  839.  
  840. For example, suppose the 3270 "cursor left" function (left arrow) is mapped to
  841. ASCII Ctrl-B (ASCII character 2).  Then in MS-DOS Kermit you would:
  842.  
  843.   SET KEY \4427 \2
  844.  
  845. where \4427 is the scan code of the PC's (gray) left arrow key, and \2 is the
  846. code for the ASCII value of the Ctrl-B character.
  847. -------------------------------------------------------------------------------
  848.  
  849. 9 How Can I Make MS-DOS Kermit Use COM3, COM4?
  850.  
  851. From: fdc@columbia.edu (Frank da Cruz)
  852. Newsgroups: comp.protocols.kermit.misc
  853. Subject: Re: COM3 available in 3.14?
  854. Date: 20 Jan 1995 15:48:20 GMT
  855. Organization: Columbia University
  856.  
  857. In article <1995Jan19.232004.8689@midway.uchicago.edu>,
  858. Cal Lott <cal@gsbux1.uchicago.edu> wrote:
  859. > I was simply wondering if version 3.14 (or any earlier) could
  860. > address COM3 and above.
  861. >
  862.  
  863. A frequently asked question.  The short answer: Yes.
  864.  
  865. The medium answer: COM3 and above have no standard address or IRQ, hence
  866. communications software (Kermit or anything else) can't always find them, in
  867. which case you have to specify the address and IRQ, using a sequence like:
  868.  
  869.   SET COM3 \x3e8 5
  870.   SET PORT COM3
  871.  
  872. (You need both commands, in the order shown.)  You must also beware of
  873. "missing" COM ports.  To use (say) an internal modem as COM4 when there is no
  874. COM3 is not straightforward.
  875.  
  876. The long answer: Read section 6 of the KERMIT.BWR file on your MS-DOS Kermit
  877. 3.14 diskette (the version at kermit.columbia.edu in kermit/a, file mskerm.bwr,
  878. might be newer).
  879.  
  880. - Frank
  881. -------------------------------------------------------------------------------
  882.  
  883. 10 MS-DOS Kermit Patches Don't Seem to Take Effect.
  884. Since the release of MS-DOS Kermit 3.14, there have been persistent reports
  885. that patches don't seem to "stick".  That is, after giving a PATCH command, the
  886. patch level is still reported as 0.  This can happen if the patch file is
  887. transferred to the PC from a UNIX system in binary mode, so the lines end with
  888. LF rather than CRLF -- DOS does not recognize the line boundaries and therefore
  889. Kermit does not see valid patches.  Cure: make sure each line ends with CRLF.
  890. Fix it in an editor, or re-transfer the file in text mode.
  891.  
  892. Also, remember there is no longer a need to rename the patch file to
  893. MSKERMIT.PCH.  Since there are now three different Kermit executables, there
  894. must be three corresponding patch files.  For version 3.14, these are:
  895.  
  896.   MSR314.PCH  -- For full-featured KERMIT.EXE
  897.   MSRM314.PCH -- For "medium-size" KERMITE.EXE
  898.   MSRL314.PCH -- For "Kermit Lite" KERLITE.EXE
  899.  
  900. Notice that each patch file includes the version number as part of its name.
  901. This allows you to run different versions of Kermit without confusion about
  902. patching.
  903. -------------------------------------------------------------------------------
  904.  
  905. 11 I Can Transfer Text Files but Not Binary Files
  906. Here are the causes (and cures) listed in decreasing order of likelihood:
  907.  
  908.    1. You are going through a terminal server or other type of connection
  909.       (telnet, rlogin, etc) that chops off the 8th bit.  Kermit can't tell
  910.       that this is happening (as it can with devices that add even, odd,
  911.       or mark parity), so you have to tell it.  The command is:
  912.  
  913.   SET PARITY SPACE
  914.  
  915.    2. You have used the SET CONTROL CONTROL UNPREFIX command to unprefix
  916.       one or more control characters that are not safe.  Tell Kermit to:
  917.  
  918.   SET CONTROL PREFIX ALL
  919.  
  920.       and see if it works.  If so, you'll have to home in on the
  921.       offender(s).
  922.  
  923. -------------------------------------------------------------------------------
  924.  
  925. 12 Binary Files Are Corrupted After Transfer
  926. Some non-Columbia Kermit implementations simply do not work, including some
  927. found in BBS software.  For example, if you download a file from a BBS using
  928. their Kermit protocol option and find a lot of Ctrl-Ys in your file where only
  929. actual letter Y's should be, then the BBS has a broken Kermit implementation.
  930. The same is also true if a file downloaded from a BBS in binary mode is bigger
  931. than the original.  Ask your BBS sysop to install MS-DOS Kermit ("Kermit Lite")
  932. as an external protocol.  See the KERMIT.UPD file in the MS-DOS Kermit 3.14
  933. distribution for additional information.
  934.  
  935. The more common cause, however, for "corrupted" binary files is that they were
  936. transfered in text mode.
  937.  
  938. Both Kermit and ftp transfer files in text mode by default.  This means that
  939. record formats and character sets are likely to be converted.  You can tell
  940. Kermit to skip all conversions and transfer the file literally, as-is, with the
  941. command:
  942.  
  943.   SET FILE TYPE BINARY
  944.  
  945. Normally, it is sufficient to give this command to the FILE SENDER before
  946. giving it the SEND command.  But there are some exceptions to this rule:
  947.  
  948.    1. One or both Kermits do not support "Attribute packets" (or they are
  949.       disabled).  This is true of many of the commercial and shareware
  950.       Kermit implementations.  Cure: tell BOTH Kermits to use binary mode.
  951.  
  952.    2. You are using some combination of C-Kermit 5A(190) or later, MS-DOS
  953.       Kermit 3.14 or later, or IBM Mainframe Kermit 4.3.1 or later in
  954.       client server mode.  In this case, it is the CLIENT's file type
  955.       setting, rather than the file sender's, that prevails.  Cure: tell
  956.       the CLIENT to SET FILE TYPE BINARY, or to be extra sure, tell them
  957.       both.
  958.  
  959.    3. You are sending the file from VMS C-Kermit, which is unique among
  960.       Kermit programs in its ability to automatically switch between text
  961.       and binary mode based on the file's characteristics.  VMS C-Kermit
  962.       ignores SET FILE TYPE BINARY and SET FILE TYPE TEXT when sending
  963.       files, and instead uses binary mode if the file's record format is
  964.       Fixed, and text mode otherwise.  However, some binary files, notably
  965.       VMS ZIP files, are stored using a "text-style" record format
  966.       (Stream_LF), so Kermit sends them in text mode.  You can override
  967.       this by telling it to SET FILE TYPE IMAGE.
  968.  
  969. If you follow all these directions and binary transfers still come out wrong,
  970. then perhaps the file you were downloading was corrupt to begin with -- e.g.
  971. it was ftp'd in text mode instead of binary mode.
  972. -------------------------------------------------------------------------------
  973.  
  974. 13 Why Doesn't the HANGUP Command Work for Me?
  975. On network connections, Kermit's HANGUP command executes the appropriate
  976. network protocol for closing the connection, and this should always work.
  977.  
  978. On serial connections, the HANGUP commands turns off the computer's DTR (Data
  979. Terminal Ready) signal for a period of time.  According to the standard that
  980. governs modem signals, this action is supposed to make a modem hang up the
  981. phone call.  If it doesn't:
  982.  
  983.    1. Your modem has been configured to "Ignore DTR".  This setting is
  984.       available on most Hayes-compatible modems, either on a physical
  985.       switch (such as Configuration Switch 1 on the Hayes 1200) or as a
  986.       command (&Dx on Hayes 2400 and later, and compatibles).  In many
  987.       cases, "Ignore DTR" is the factory setting.  If you want your modem
  988.       to obey the DTR signal, then you should set the switch
  989.       appropriately, or give the command AT&D2.  The actual syntax of the
  990.       command might vary among different brands and models of modems, so
  991.       consult your modem manual for details.
  992.  
  993.    2. Your cable or connector has DTR "hotwired high", meaning that the
  994.       DTR wire is jumpered to some other signal that is always high (on).
  995.       If this is not what you desire, you should replace your cable with a
  996.       standard modem cable.
  997.  
  998.    3. You are using a Macintosh with a "hardware handshaking cable".  This
  999.       is actually the same situation as (2), except there is no way to
  1000.       "fix" the cable - please read the ckmker.bwr file for an
  1001.       explanation.
  1002.  
  1003. To work around these problems in Kermit, without actually fixing the underlying
  1004. cause, you can use a macro that escapes back to the modem's command processor
  1005. and gives it the command to hang up.  Such a macro is predefined for you in the
  1006. MS-DOS Kermit 3.14 initialization file, MSKERMIT.INI:
  1007.  
  1008.   ; ATHANGUP macro.  Use this if regular HANGUP command doesn't do the trick.
  1009.   def ATHANGUP sleep 1,out +++,sleep 1,out ath0\13
  1010. (Note: C-Kermit uses this technique anyway.)
  1011.  
  1012. In MS-DOS Kermit, you can assign execution of this macro to the "hot key" of
  1013. your choice, for example:
  1014.  
  1015.   set key \315 {\Kathangup}  ; Assign ATHANGUP macro to the F1 key
  1016.  
  1017. In Mac Kermit, you can just go to the terminal screen and do it by hand:
  1018.  
  1019.    - Pause at least one second
  1020.  
  1021.    - Type +++
  1022.  
  1023.    - Pause at least one second
  1024.  
  1025.    - Type ATH0 (letters A, T, H, digit zero)
  1026.  
  1027.    - Press the return key.
  1028.  
  1029. The modem should hang up and say NO CARRIER.
  1030. -------------------------------------------------------------------------------
  1031.  
  1032. 14 How Can I Make the DIAL/REDIAL Commands Keep Trying?
  1033. In Kermit 95, just click on the appropriate boxes in the graphical Dialer
  1034. (Options -> Dialing -> Procedures), or use the following commands at the
  1035. command prompt:
  1036.  
  1037. K-95> set dial retries 30   (How many times to redial)
  1038. K-95> set dial interval 20  (How long to wait between tries)
  1039. K-95> dial 5551212
  1040.  
  1041. In C-Kermit 6.0, use the "set dial retries" and "set dial interval" commands
  1042. shown above.
  1043.  
  1044. In MS-DOS Kermit, the DIAL command is defined in the MSKERMIT.INI file, and it
  1045. does indeed retry the call several times.  REDIAL is also a macro, which simply
  1046. invokes the DIAL macro with the number most recently dialed; hence it, too,
  1047. tries the number several times.  If you want to change the number of times that
  1048. the DIAL macro tries, or the conditions under which it retries, or the interval
  1049. between tries, simply edit the DIAL macro definition in MSKERMIT.INI.
  1050. -------------------------------------------------------------------------------
  1051.  
  1052. 15 I Enabled Sliding Windows but It Looks Like Only One Is Used.
  1053.  
  1054. Newsgroups: comp.protocols.kermit.misc
  1055. Subject: Re: Sliding windows - only one is used?
  1056. Date: Wed Feb 15 09:21:08 1995
  1057. From: fdc@columbia.edu (Frank da Cruz)
  1058.  
  1059. In article <3hn07m$4dl@israel-info.datasrv.co.il>,
  1060. 4th Dimension <winter@zeus.datasrv.co.il> wrote:
  1061. > I'm using MS-Kermit 3.14, PL3 on my PC, talking to C-Kermit 5A(190)
  1062. > on the remote Sun.  When I start MSK, I load the FAST macro to get
  1063. > maximum thruput. Transfer of data is pretty fast, except that I
  1064. > never see more than one window used out of the three.  Is this a
  1065. > bug, a feature, or am I doing something wrong?
  1066. >
  1067.  
  1068. It's not a bug and you are probably not doing anything wrong.
  1069.  
  1070. When two Kermit programs have agreed to use a maximum window size greater than
  1071. one, let's say 4, here is what happens:
  1072.  
  1073. The FILE SENDER can send up to 4 packets without waiting for an acknowledgement
  1074. from the file receiver.  Each unacknowledged packet sits in the file sender's
  1075. window until it is acknowledged.  Thus its window size grows from 1 to 2 to 3
  1076. to 4.  If acknowledgments arrive quickly, the window might not grow to its
  1077. maximum size because it does not need to.
  1078.  
  1079. The job of the FILE RECEIVER is to accept and verify packets, decode them, and
  1080. write the decoded contents out to the file.  If packets arrive in sequence,
  1081. then each one is processed and disposed of as soon as it arrives.  If, however,
  1082. a packet arrives that has a sequence number that is more than one greater than
  1083. the previous packet that was successfully processed, this means that a packet
  1084. is missing.  Thus the packet that just arrived can't be written out to disk
  1085. because if it were, the file would have a piece missing.  So the
  1086. out-of-sequence packet is stored in the receiver's window until the missing
  1087. piece is filled in.
  1088.  
  1089. Thus you won't see the file receiver's window size exceed one unless there have
  1090. been transmission errors, no matter what window size the file sender might be
  1091. using.  For greater detail see pages 102-103 of "Using MS-DOS Kermit" or pages
  1092. 158-161 of "Using C-Kermit" (1st edition) or pages 256-260 of the second
  1093. edition.
  1094.  
  1095. - Frank
  1096. -------------------------------------------------------------------------------
  1097.  
  1098. 16 How Do I Write a Script to Dial a Pager?
  1099. A numeric pager is one that can display a number -- usually the number to be
  1100. called back.  The number is entered by pressing Touch-Tone keys on your
  1101. telephone, usually terminated by pressing the "#" or "*" key.
  1102.  
  1103. Numeric pagers are not modems.  Therefore when you dial one, it does not return
  1104. a carrier signal.  Therefore, the dialing modem will not say "CONNECT" or turn
  1105. on its carrier signal.  Therefore, DIAL commands will not succeed.
  1106.  
  1107. You can type commands to your modem manually for testing.  For example:
  1108.  
  1109.   ATDT7654321,,,,,8765432#;
  1110.  
  1111. In this example we Tone-dial the phone number "7654321", then we pause for ten
  1112. seconds (",,,,,") to give the pager time to answer the call, then we send
  1113. "8765432" to be displayed on the pager, then we send the "#" tone, and then we
  1114. return to command mode (";").  The modem should respond "OK".  The details will
  1115. vary with your modem, your telephone service, and the pager you are dialing.
  1116.  
  1117. Let's assume we have a Hayes 2400 or higher compatible modem.  Here's a sample
  1118. command file to call a numeric pager:
  1119.  
  1120.   define \%a 7654321  ; Number to call
  1121.   define \%b 8765432  ; Number to display on pager
  1122.   set port xxxxxxx    ; Select the communication device
  1123.   set speed 2400      ; Any speed supported by the modem
  1124.   output AT\13        ; Make sure it's in command mode
  1125.   input 3 OK          ; ...
  1126.   if fail stop 1 Can't get your modem's attention
  1127.   output {ATDT\%a,,,,,\%b#;\13}  ; Make the call
  1128.   input 3 OK          ; ...
  1129.   if fail stop 1 Can't place call
  1130.  
  1131. You can turn this into a macro that accepts the numbers as arguments.  See
  1132. "Using MS-DOS Kermit" or "Using C-Kermit" for additional script programming
  1133. instructions, and your modem manual and the pager manual for details of calling
  1134. and paging.  Note: the OUTPUT string is enclosed in curly braces to force the
  1135. commas to be taken literally (if you were using this command in a macro
  1136. definition and did not enclose the OUTPUT string in braces, the commas would be
  1137. command separators).  Note #2 - Some modems might also support a "wait for
  1138. quiet answer" feature, e.g. by using the at-sign "@" in the dialing string:
  1139.  
  1140.   ATDT7654321@8765432#;
  1141.  
  1142. However, even when your modem supports this feature, it might not be the right
  1143. approach for every paging service.  For example, some services issue a lengthy
  1144. voice message and then a beep (or two or three) before they are ready for the
  1145. message.  So in most cases a fixed pause is safest.
  1146.  
  1147. What about alphanumeric pagers?  You have to dial the paging service and then
  1148. either go through a series of prompts, or else execute a protocol like TAP.
  1149. C-Kermit 6.0 comes with a TAP paging procedure:
  1150.  
  1151.     ckepage.ksc
  1152.  
  1153. You can also send an alpha page "by hand".  The manual method goes like this
  1154. (at least for paging services that support TAP "manual mode"):
  1155.  
  1156.    1. Set up the call.
  1157.  
  1158.    2. Make sure that DIAL succeeds (Alpha pagers, unlike numeric pagers,
  1159.       will send carrier back).
  1160.  
  1161.    3. Look for "ID=".
  1162.  
  1163.    4. Send uppercase "M" followed by carriage return.
  1164.  
  1165.    5. You are prompted for the destination pager ID.  Send it, followed by
  1166.       a carriage return.
  1167.  
  1168.    6. You are prompted for the text of the message.  Send the text.  It
  1169.       might be restricted to one line, and even if not, it might be
  1170.       restricted to a certain total length.
  1171.  
  1172.    7. You might be prompted in some way for more pages or lines; you can
  1173.       answer yes or no.
  1174.  
  1175.    8. Assuming you answer no, optionally look for the farewell message,
  1176.       then hang up.
  1177.  
  1178. The exact procedure and prompts vary according to the paging service, so you'll
  1179. need to go through the process manually to see exactly what the prompts and
  1180. sequences are.  Then you can write a Kermit script to send manual-mode
  1181. alphanumeric pages automatically.
  1182. -------------------------------------------------------------------------------
  1183.  
  1184. 17 When C-Kermit Dials My V.32bis (or V.34) Modem, I Get the Error 'Can't
  1185.    Change Speed to 14400 (or 28800)'
  1186. Dialing is covered in detail in Using C-Kermit, second edition, and the problem
  1187. listed in the title of this section should occur only rarely in C-Kermit 6.0
  1188. (it was quite common in earlier versions).
  1189.  
  1190. To recapitulate very briefly: older modems, like the Hayes 1200 and 2400, that
  1191. did not do error correction or compression, but that could negotiate their
  1192. modulation speed, would report the modulation speed upon successful connection,
  1193. and change their interface speed to match.  Thus, the communication software
  1194. would also have to change its own interface speed, or else the user would see
  1195. only garbage.
  1196.  
  1197. Modern modems have two different speeds: the interface speed and the modulation
  1198. speed.  The interface speed can be kept constant even though the modulation
  1199. speed changes.  Or not, depending on how the modem is configured.
  1200.  
  1201. C-Kermit versions prior to 6.0 had no way of knowing whether your modem is set
  1202. up to lock its interface speed, or to change it to match the modulation speed,
  1203. and therefore no way of knowing whether to believe the "CONNECT 28800" (or
  1204. whatever) message.  By default, for compatibility with the huge installed base
  1205. of older modems, it did believe, and therefore changed its interface speed
  1206. according to the CONNECT message.
  1207.  
  1208. But if your modem's interface speed is locked (which it SHOULD be if it is an
  1209. error-correcting, data-compressing modem), you must tell Kermit NOT to change
  1210. its interface speed by giving it the command:
  1211.  
  1212. SET DIAL SPEED-MATCHING OFF
  1213.  
  1214. Now to complicate matters, some of the newer modulations report speeds that are
  1215. not commonly supported by the host operating system, such as 14400 and 28800.
  1216. Hence the message "Can't change speed to 14400" (or 28800).  But even if these
  1217. speeds were supported, you would not want Kermit changing to them if the
  1218. modem's interface speed was locked.  You would still see only garbage, but you
  1219. would not get the "Can't change speed" message.
  1220.  
  1221. C-Kermit 6.0, by contrast, has a much more comprehensive modem database, and
  1222. automatically chooses the appropriate SPEED-MATCHING and other parameters when
  1223. you choose your modem type.  Therefore, when you choose a high-speed modem
  1224. type, one that is capable of speed buffering, C-Kermit automatically set DIAL
  1225. SPEED-MATCHING to OFF; whereas if you choose (say) the Hayes 2400 modem type,
  1226. it will set it ON.  You can override these automatic choices by giving explicit
  1227. SET MODEM and/or SET DIAL commands after your SET MODEM TYPE command.
  1228.  
  1229. See "Using C-Kermit" for additional detail.
  1230. -------------------------------------------------------------------------------
  1231.  
  1232. 18 How Do I Use Kermit with Pine?
  1233. Here's a tip sheet we use at Columbia University - thanks to Joe Brennan.
  1234.  
  1235. SCREEN FORMATTING
  1236.  
  1237. Make sure that your UNIX terminal type agrees with Kermit's terminal emulation.
  1238. For example, if Kermit is emulating a VT320, tell UNIX:
  1239.  
  1240.   export TERM=vt320
  1241.  
  1242. or:
  1243.  
  1244.   setenv TERM vt320
  1245.  
  1246. If there is a complaint about "terminal type unknown" when starting Pine, then
  1247. try a lesser VT terminal model, such as VT220, VT102, VT100.
  1248.  
  1249. PRINTING
  1250.  
  1251. Pine's print command, letter Y, is known to work with MS-DOS Kermit and Mac
  1252. Kermit.  With MS-DOS Kermit, if the printer is directly attached, it should
  1253. make the printer print the selected email message.  With Mac Kermit, it should
  1254. send the selected email message into the printer buffer, which can be seen in
  1255. the Printer window, and which can be printed using the print command in the
  1256. pulldown File menu.
  1257.  
  1258. The command ''pcprint'' on UNIX (*), which prints any text file, does the same
  1259. thing as Pine's Print command.  It may be easier to debug problems by running a
  1260. command like ''pcprint .profile'' at the UNIX shell ($ prompt).
  1261.  
  1262. (*) pcprint is a UNIX shell script:
  1263.  
  1264. ---(cut here)---
  1265. echo -n '<ESC>[5i'
  1266. if [ $# -eq 0 ]; then
  1267.   cat
  1268. else
  1269.   cat $*
  1270. fi
  1271. echo -n '<ESC>[4i'
  1272. ---(cut here)---
  1273.  
  1274. (Replace <ESC> by a real Escape (ASCII 27) character.
  1275.  
  1276. DOWNLOADING FROM PINE TO THE PC
  1277.  
  1278. Use Pine's command letter E, Export, to copy a message into a file.  This file
  1279. will be created in your home directory on UNIX.  Then it can be downloaded to
  1280. your PC or Mac using Kermit.  After you finish, remember to remove the
  1281. now-unneeded file on UNIX, using the ''rm'' command at the $ prompt.
  1282.  
  1283. If you View a MIME-encoded message, Pine will ask whether to save it to a file
  1284. with a name of your choice.  Pine will decode the message and create the file
  1285. in your home directory on UNIX.  It can then be downloaded to your PC using
  1286. kermit.  MIME-encoded files are often binaries rather than plain text, so you
  1287. should set kermit to transfer a binary file.
  1288.  
  1289. UPLOADING FROM THE PC TO PINE
  1290.  
  1291. Send email in plain text if possible.  Save the document as plain ASCII text
  1292. with the PC application that created it.  Use Kermit to upload it to UNIX.  Run
  1293. Pine, choose letter C, Compose, and address your message as usual.  Move the
  1294. cursor to the Message Text area and choose control-R, Read File, and type the
  1295. name the file (the copy on UNIX) to insert.  You will see the file on screen,
  1296. as if you had typed it.  If it looks strange, it's not plain text, so start
  1297. over.  After you finish, remember to remove the now-unneeded file on UNIX,
  1298. using the ''rm'' command at the $ prompt.
  1299.  
  1300. If you want to send a PC document, use Kermit to upload it, setting Kermit to
  1301. transfer a binary file.  Run Pine, choose letter C, Compose, and at the
  1302. Attchmnt: header, type the name of the file (the copy on UNIX).  Pine will
  1303. encode it using MIME, and attach it to the end of any text you choose to type
  1304. in the message.  *Note*: with MIME or any form of encoding, you should
  1305. determine whether the recipient of your message will be able to decode it.
  1306. Plain text email (previous paragraph) can be read on any email system.
  1307. -------------------------------------------------------------------------------
  1308.  
  1309. 19 How Do I Get a Session Log without All the Embedded Escape Sequences?
  1310. This can be done in Kermit versions that have true terminal emulators, such as
  1311. MS-DOS Kermit and Kermit 95.
  1312.  
  1313. In MS-DOS Kermit:
  1314.  
  1315.    - Don't LOG SESSION.  Instead, SET PRINTER <filename>.
  1316.  
  1317.    - Use Ctrl-Print Screen to "toggle" logging.
  1318.  
  1319. In Kermit 95:
  1320.  
  1321.    - Don't LOG SESSION.  Instead, SET PRINTER <filename>.
  1322.  
  1323.    - Press the key that has the \KprtAuto Kverb assigned to it to toggle
  1324.      logging on and off (it is off at first).  \KprtAuto is assigned to
  1325.      Alt-o (letter "o") by default.
  1326.  
  1327. The resulting file will contain only screen lines, and not the escape sequences
  1328. that put them there.  The mechanism used internally is called "autoprint", and
  1329. works by sending each screen line to the printer or printer file when the
  1330. cursor leaves it.
  1331.  
  1332. In UNIX and OS-9 C-Kermit, you can "set session log text".  This does not
  1333. filter out escape sequences, but at least it takes care of CR/LF/CRLF
  1334. conversion for you; see the description of this command in "Using C-Kermit".
  1335. -------------------------------------------------------------------------------
  1336.  
  1337. 20 Kermit Doesn't Work Right with My (RPI) Error-Correcting Modem!
  1338. When you buy a modern error-correcting, data-compressing, speed-buffering
  1339. modem, you probably expect the modem to perform those functions, and most do.
  1340. Unfortunately, some modems that claim to have these features do not have them
  1341. at all, but require external software that implements them in your computer,
  1342. rather than in the modem where they belong.
  1343.  
  1344. One example of this practice is the Rockwell Protocol Interface (RPI), a
  1345. proprietary "standard" from Rockwell International Company that allows modem
  1346. companies to sell modems at a lower price by incorporating Rockwell chips that
  1347. do not include error-correction or compression capabilities.
  1348.  
  1349. This "standard" must be licensed from Rockwell, hence you will only find it
  1350. implemented in commercial software, such as on the diskette (if any) that came
  1351. with your modem.
  1352.  
  1353. In general, such software is available only for PCs running Microsoft Windows
  1354. 3.x or Windows 95, or built into proprietary communications packages like
  1355. Comit.
  1356.  
  1357. If your modem documentation says it requires "RPI-compatible" software for
  1358. error correction and compression, and you want to use it with Kermit, then you
  1359. are out of luck unless you also have the software driver for the modem and can
  1360. use it on your computer.  Otherwise you bought the wrong modem.  Hopefully, you
  1361. can return it.
  1362.  
  1363. It is usually hard to tell by reading the modem box.  One user reports: "The
  1364. RPI bit is hidden on the back of the box: '*Error Control* V.42 and MNP RPI
  1365. software,' and '*Data Compression* V.42bis RPI software.'  The box design is
  1366. such that, unless you happen to already know what RPI is, you think you're
  1367. getting a modem with MNP/V.42 LAPM/V.42bis compression built in."
  1368.  
  1369. If you can't return the modem, you can still use it without error correction,
  1370. but then:
  1371.  
  1372.    - Noise is not filtered out on the modem-to-modem connection, as it
  1373.      would be with a real error-correcting modem, and noise bursts will
  1374.      interfere with your online sessions and your file transfers.
  1375.  
  1376.    - There is no modem-to-modem compression, because that requires error
  1377.      correction.
  1378.  
  1379.    - There is no flow control, because that too requires an
  1380.      error-correction protocol between the modems.
  1381.  
  1382.    - Speed buffering is ineffective because that requires flow control
  1383.      between the modems.  Thus, if the two modems have different interface
  1384.      speeds, vast amounts of data will be lost.
  1385.  
  1386. Thus, none of the modem's "advanced features" are really there.
  1387.  
  1388. Why RPI is a bad idea:
  1389.  
  1390.    - Implementation of MNP, V.42, and V.42bis in software is a VERY big
  1391.      job.  Since it is uneconomical for software companies to write
  1392.      software for any platform other than Microsoft Windows, it is
  1393.      unlikely that RPI drivers will ever be written for DOS, UNIX, OS/2,
  1394.      VMS, or any other platform.
  1395.  
  1396.    - Even when a company wants to produce a driver for (say) a new release
  1397.      of Windows, there is generally a long lag time before it is
  1398.      available.  Thus you might find when you install your brand-new
  1399.      operating system that your modem has become useless.
  1400.  
  1401.    - The driver software slows down your computer by consuming a vast
  1402.      amount of CPU cycles over and above what would be used if
  1403.      error-correction and compression were done in the modem, and it
  1404.      increases memory requirements, swapping, and in general can be
  1405.      expected to drag down the performance of your PC.
  1406.  
  1407.    - RPI seeks to replace an open communication method (the one that is
  1408.      universally used by serial communication software) by a closed,
  1409.      proprietary, licensed one, and potentially hold hostage all
  1410.      communications software developers to nondisclosure agreements.
  1411.  
  1412.    - It precludes publication of source code.
  1413.  
  1414.    - Since MNP 2-5 and V.42 and V.42bis are complex protocols, the
  1415.      software implementations will inevitably be buggy and are unlikely to
  1416.      be consistent, especially since the "standard" is not an open one,
  1417.      and the implementations themselves will not be open.
  1418.  
  1419.    - Even if the drivers are not buggy, the underlying operating system is
  1420.      likely to be.
  1421.  
  1422.    - Since not all software in the world will be "upgraded" to "support"
  1423.      the RPI "standard", your modem will not be usable in many of the ways
  1424.      you might have expected to use it.
  1425.  
  1426.    - Many people will buy these modems under the mistaken impression that
  1427.      they can use their high speeds and advanced features with their
  1428.      favorite software.  The average mass-market consumer is unlikely to
  1429.      understand the implications of "requires RPI-compliant software" in
  1430.      tiny print on the box.
  1431.  
  1432.    - By Gresham's Law, "The bad drives out the good".  RPI modems are
  1433.      cheaper, and might well drive reputable modems out of the
  1434.      marketplace, leaving the entire world's online community with no
  1435.      modems left to choose from but ones that will work only with Windows.
  1436.      This drives another nail into the coffin of "legacy" non-Windows
  1437.      platforms, and this, in turn, leaves the public with fewer choices
  1438.      for operating systems, applications, and computers themselves.
  1439.  
  1440. What are the benefits of RPI?
  1441.  
  1442.    - Lower-cost modems?  In order to save a few dollars, you are giving up
  1443.      the ability to use the modem on the platform of your choice, with the
  1444.      software of your choice, and you are probably going to get poorer
  1445.      performance than you would have had with the EC and DC protocols
  1446.      built-in over the life of the modem.
  1447.  
  1448. How do I tell if I have an RPI modem?
  1449.  
  1450.    - According to Rockwell, all RPI modems should issue a message
  1451.      containing "RPI" in response to the command ATI3.  Here are some
  1452.      examples:
  1453.  
  1454. AFEP-V1.510-BP39 ROCKWELL RPI (TM) MODEM
  1455. AFEP-V1.620z1.00 BS39 ROCKWELL RPI (TM) MODEM
  1456. V1.620-BP39 ROCKWELL RPI (TM) MODEM
  1457.  
  1458.    - The command to enable error correction (such as AT&Q5, depends on the
  1459.      modem) results in an ERROR response.
  1460.  
  1461.    - They normally have AT+Hdigit commands to control the RPI interface.
  1462.      (This one is not dependable, since there are no standards for modem
  1463.      commands, and so AT+H might be used on non-RPI modems for some
  1464.      entirely unrelated purpose.)
  1465.  
  1466. Is there a list of RPI modems?
  1467.  
  1468.    - No.  Just about any modem manufacturer is likely to have RPI models.
  1469.      The modem market is incredibly volatile, fast-moving, and voracious.
  1470.      Any such list would be obsolete before you could see it.
  1471.      Once-scrupulous companies will now do anything to cut costs and
  1472.      increase margins.  They have no choice -- if your competitors are
  1473.      doing it, you have to do it too or lose your business.  Rockwell
  1474.      licenses RPI "technology" to anyone who will pay for it, but is under
  1475.      no obligation to disclose its licensees, nor are the licensees under
  1476.      any obligation to inform Rockwell (or anybody else) which models
  1477.      contain RPI chips and which do not.  In many cases, the same make and
  1478.      model can have RPI and non-RPI variations.  This makes technical
  1479.      support an increasingly difficult job.  By saving a small amount of
  1480.      money for themselves, the modem manufacturers have created unneeded
  1481.      confusion among users and service providers, and driven up costs
  1482.      throughout the online world.
  1483.  
  1484. Is RPI the only "software driven" modem scheme?
  1485.  
  1486.    - No.  There are similar products from other companies.  This further
  1487.      complicates the task of the help desks of the world, for even once
  1488.      they have ruled out that a modem problem is due to RPI, it might be
  1489.      some other kind of "controllerless" modem based, for example, on the
  1490.      HSM chipset from AT&T (now Lucent).  US Robotics (now 3Com) sells a
  1491.      "Winmodem" (see next question).  IBM has the Mwave, whose signal
  1492.      processing functions (the very core of a modem) must be downloaded
  1493.      from the computer.
  1494.  
  1495.    - We can only expect to see more and more of this in the future.  As a
  1496.      maker of such items commented in the comp.dcom.modems newsgroup,
  1497.      "There's certainly a market for platform-independent modems, but you
  1498.      can't expect manufacturers to ignore the market opportunity for
  1499.      Windows-only modems, especially when they can have a cost and
  1500.      performance advantage."
  1501.  
  1502. Of course you can't.  But what about end users who don't understand any of
  1503. this?  Most of them do not make informed choices when buying modems.  And
  1504. increasingly, many of them make no choice at all -- the modem comes
  1505. preinstalled in a PC they have bought, and does not even include a manual;
  1506. sometimes not even a brand name.  And now that RPI modems have been out for a
  1507. while, we are beginning to see how they are passed from hand to hand, installed
  1508. in or connected to new computers (for use, e.g., with DOS or Linux) and causing
  1509. a whole new wave of problems.
  1510.  
  1511. If you have an RPI or other controllerless modem, and you need to use it in a
  1512. setting for which a driver is not available -- that is, in most cases, any
  1513. platform other than a PC running Microsoft Windows -- you are just plain out of
  1514. luck.  Return it and buy a real modem.  This way, you will encourage modem
  1515. manufacturers to continue to make real "platform-independent" modems.
  1516. -------------------------------------------------------------------------------
  1517.  
  1518. 21 What about Winmodems?
  1519. Refer to the previous section.  Note, however, that Winmodems are even more
  1520. Windows-dependent than RPI modems, as they rely on the Windows drivers not only
  1521. for error correction and data compression, but for all of their modem
  1522. functions.  Thus they are totally useless outside of Windows 3.1 or Windows 95,
  1523. and even under those operating systems, they can be used only by native Windows
  1524. applications, and not by DOS applications -- not even when they are running in
  1525. a Windows window.  To quote from a posting to comp.dcom.modems from August 7,
  1526. 1996:
  1527.  
  1528. "While the Winmodem does have some advantages over modems, this device and
  1529. others like it are generally inferior to a real and true modem.  The Winmodem
  1530. isn't really a modem, it's just a DSP and a few other componants on a card.  It
  1531. doesn't become a modem until you load up the Windows drivers for it.  First off
  1532. this means that you're totally and completely stuck with Windows software.  No
  1533. support for DOS in any way (not even through a DOS session in Windows), OS/2,
  1534. Linux, or even WinNT.  Furthermore it uses your computer CPU for some tasks
  1535. normally handled by a processor in the modem.  This drains some CPU power and
  1536. memory from your computer, which can slow applications down (although just how
  1537. much it'll slow things down depends on a number of factors)."
  1538.  
  1539. Thus you can not use MS-DOS Kermit or any other DOS communications software
  1540. with a Winmodem.  Nor can you use a Winmodem in Linux, SCO, OpenBSD, FreeBSD,
  1541. or any other form of PC-based UNIX.  You can, however, use Kermit 95 in Windows
  1542. 95 or 98 (not Windows NT) with a Winmodem, since Kermit 95 is a native 32-bit
  1543. Windows application with access to the Windows drivers.
  1544.  
  1545. BUT... Even when we only want to use our Winmodem in Windows 95/98, and are
  1546. willing to live with the performance degradations, we still might have some
  1547. unpleasant surprises:
  1548.  
  1549.    - When you install a new software package, the modem stops working.
  1550.      The error might be something like "Failure to load DSP".  The new
  1551.      software package destroyed or renamed some unknown Windows Registry
  1552.      entry or file on your disk, which is a criticial part of the modem.
  1553.      Real modems are self-contained and are therefore immune to this
  1554.      phenomenon.  You'll need to reinstall the "modem" or Windows itself
  1555.      to recover.
  1556.  
  1557.    - You can't use your sound card when you are using your modem, because
  1558.      the modem uses the sound card for analog/digital conversion.
  1559.  
  1560.    - Modem calls will often fail for mysterious reasons related to your
  1561.      sound card or who knows what else.  Often, you will need to reboot,
  1562.      perhaps more than once, to clear the problem.
  1563.  
  1564. -------------------------------------------------------------------------------
  1565.  
  1566. 22 What Kind of Modem Should I Buy?
  1567. Refer to the previous two sections.
  1568.  
  1569. We have always recommended external modems.  In the past, the main reasons for
  1570. this were that:
  1571.  
  1572.    - They can be connected to any kind of computer that has a serial port.
  1573.  
  1574.    - You can monitor the lights and speaker sounds for troubleshooting.
  1575.  
  1576.    - They don't cause interrupt conflicts or address confusion, as
  1577.      internal modems almost always do.
  1578.  
  1579. In recent times, the reasons to stick with external modems are all the more
  1580. compelling:
  1581.  
  1582.    - Almost any recent-model modem is bound to have bugs and defects.
  1583.      Therefore it is better to keep it outside your PC, where it can't
  1584.      affect the internal bus, configuration, or interrupt structure of
  1585.      your computer.
  1586.  
  1587.    - An external modems can be turned off and on to return it to its
  1588.      power-up configuration, as is often necessary when the modem becomes
  1589.      hopelessly confused.  Internal modems can be power cycled only by
  1590.      turning your whole computer off and on.
  1591.  
  1592.    - External modems are almost never "controllerless".  To the best of
  1593.      our knowledge, all RPI modems, Winmodems, and other "software
  1594.      assisted" modems are internal PC modems.
  1595.  
  1596.    - External modems are never "Plug and Play".  Plug and Play modems need
  1597.      special OS-specific loaders to be initialized correctly.  They can't
  1598.      be used with DOS applications, even in a Windows 95 DOS window.  To
  1599.      the best of our knowledge they work only in Windows 95/98, and maybe
  1600.      to some degree also in Linux through the isapnptools software.
  1601.  
  1602. We do not recommend or endorse any particular brand of modem.  However, we do
  1603. recommend the following attributes:
  1604.  
  1605.    - It should be external rather than internal.  The extra price is worth
  1606.      it.
  1607.  
  1608.    - It should follow established ITU-T (formerly CCITT) standards like
  1609.      V.32bis, V.34, V.90, V.42, and V.42bis.  If a modem claims to
  1610.      "exceed" standards or "set" standards, beware; it is unlikely to
  1611.      interoperate correctly, or at all, with modems from other
  1612.      manufacturers.
  1613.  
  1614.    - It must not depend on operating-system-specific drivers or loaders
  1615.      for any of its signal processing, modulation, error-correction, or
  1616.      compression functions.  The operating system should be able to make
  1617.      full use of it through its serial-port driver, with the application
  1618.      providing the interface to the modem's command language.  Thus you
  1619.      should be able to change or upgrade operating systems without losing
  1620.      the ability to use your modem.
  1621.  
  1622. Read the box carefully before buying.
  1623.  
  1624. 56K modems are designed for only one purpose: to dial up an Internet Service
  1625. Provider (ISP) that offers 56K service and has a digital connection to the
  1626. telephone network. If they don't work for other purposes, this is not
  1627. surprising, since they were not designed for any other purpose.
  1628.  
  1629. V.90 is the recently approved ITU-T standard 56K method, whereas X2 and K56flex
  1630. are competing proprietary methods that preceded the standard. While V.90 is
  1631. based on the other two, it does not include either one of them, and is only
  1632. just now appearing on the market.
  1633.  
  1634. Basic connection problems can occur if:
  1635.  
  1636.    - There is more than one analog segment (and therefore more than one
  1637.      analog/digital conversion point) in the telephone circuit between two
  1638.      56K modems. Of course, you have no control over this. But it is
  1639.      likely if you are calling any host or service that does not have a
  1640.      direct digital link to the phone network. It might also be the case
  1641.      if you are calling out from a PBX, which can involve multiple A/D D/A
  1642.      conversions.
  1643.  
  1644.    - There is only one analog segment, but it is too long or too noisy.
  1645.  
  1646.    - Your modem tickles bugs in the other modem, or vice versa.
  1647.  
  1648.    - Your modem and the other modem (which might or might not be a 56K
  1649.      modem) can not negotiate a common modulation or protocol. It takes
  1650.      more memory than most modems have to accommodate one or two 56K
  1651.      "standards" plus all the others (v.34 and below) and so essential
  1652.      fallback procedures might be lacking.
  1653.  
  1654. In theory, the modems should be able to recover from such situations
  1655. automatically, and agree upon a lower modulation and connection speed. In
  1656. practice, sometimes the modems become "frozen" or disconnect entirely. The most
  1657. common complaint is that the modem makes the connection, but there is only a
  1658. "blue screen" on the other end. That is, the modems are connected, the local
  1659. modem reports carrier, but no characters are transmitted.
  1660.  
  1661. Performance is a totally separate question, and generally hinges upon the
  1662. specific pair of modems and the connection between them.
  1663. -------------------------------------------------------------------------------
  1664.  
  1665. 23 My Arrow Keys Don't Work
  1666.  
  1667. Newsgroups: comp.protocols.kermit.misc
  1668. Date: Mon Apr 24 10:24:29 1995
  1669. From: Frank da Cruz <fdc@columbia.edu>
  1670. Subject: Re: arrow keys and www?
  1671. Organization: Columbia University
  1672.  
  1673. In article <3n2s56$rb4@news-2.csn.net>,
  1674. Gideon Weisz <gweisz@csn.net> wrote:
  1675. >
  1676. > This has to be a very simple problem, so apologies in advance, but I
  1677. > am stuck.  In www, using lynx, with mskermit 3.14 and vt220 (and
  1678. > HEBREW macro) the arrow keys do not work right.  To move among
  1679. > highlighted links, one is supposed to use the up/down arrows and to
  1680. > move among levels the left/right keys.  However, if I use
  1681. > right-arrow, I get "do you wish to send a comment"; if I use
  1682. > left-arrow it is taken as a command to download down-arrow moves me
  1683. > up! (up the screen to the last highlight).
  1684. >
  1685.  
  1686. Kermit is emulating a real VT220 terminal.
  1687.  
  1688. The VT220 cursor (arrow) keypad can be in one of two modes: cursor mode and
  1689. application mode.  These keys send different escape sequences depending on
  1690. which mode they are in.  When a VT220 is turned on (and when Kermit is
  1691. started), the arrow keys are in cursor mode.
  1692.  
  1693. By default (that is, unless you give SET KEY commands to change things), MS-DOS
  1694. Kermit uses the IBM keyboard arrow keys as the VT220 arrow keys.  Each key has
  1695. a "verb" assigned to it:
  1696.  
  1697.   Up arrow      \Kuparr
  1698.   Down arrow    \Kdnarr
  1699.   Right arrow   \Krtarr
  1700.   Left arrow    \Klfarr
  1701.  
  1702. These verbs track the cursor keypad mode automatically, and send the following
  1703. escape sequences:
  1704.  
  1705.                Cursor Mode   Application Mode
  1706.  
  1707.   \Kuparr        CSI A           SS3 A
  1708.   \Kdnarr        CSI B           SS3 B
  1709.   \Krtarr        CSI C           SS3 C
  1710.   \Klfarr        CSI D           SS3 D
  1711.  
  1712. where CSI is ESC followed by left bracket ([) on a 7-bit connection or decimal
  1713. 155 on an 8-bit connection, and SS3 is ESC followed by O (uppercase letter O)
  1714. on a 7-bit connection and decimal 143 on an 8-bit connection.
  1715.  
  1716. How does the cursor keypad mode change?  The host can change it by sending
  1717. special escape sequences, or you can change it yourself by using the command:
  1718.  
  1719.   SET TERMINAL ARROW-KEYS { CURSOR, APPLICATION }
  1720.  
  1721. So why do the arrow keys not work in Lynx?  Or, in general, in any particular
  1722. application:
  1723.  
  1724.    1. Because the application expects the keypad to be in one mode when it
  1725.       is in the other mode.  This is a deficiency on the part of the
  1726.       application.  Applications should never ASSUME which mode the cursor
  1727.       keypad is in, but rather, they should PUT the keypad in the desired
  1728.       mode, or else they should accept arrow-key codes from either mode.
  1729.       Workaround: tell Kermit to SET TERM ARROW CURSOR (or APPLICATION).
  1730.  
  1731.    2. Because of a terminal-type mismatch.  Lynx, in particular, does not
  1732.       seem to use the termcap database (it uses only terminfo), and so
  1733.       therefore might not understand Kermit's VT220 or VT320 terminal type
  1734.       (this kind of confusion typically occurs when a terminal type is in
  1735.       the termcap database but not the terminfo one, and therefore works
  1736.       with EMACS or vi, but not with Lynx).  Solution: tell Kermit to SET
  1737.       TERM TYPE VT100 and also tell the host your terminal type is VT100,
  1738.       before starting Lynx, and ask you system administrator to add
  1739.       missing terminfo entries.
  1740.  
  1741.    3. Because of a character-size mismatch.  If you have been using a
  1742.       VMS-based VT220 or VT320 fullscreen application (such as ALEPH, EVE,
  1743.       etc), you might find that your arrow keys are sending 8-bit codes
  1744.       rather than 7-bit codes, and then when switching to another
  1745.       application like Lynx, the new application might not understand the
  1746.       8-bit codes.  Again, this is a deficiency of the application.
  1747.       Workaround: tell Kermit to SET TERM CONTROLS 7.
  1748.  
  1749. I put MS-DOS Kermit into Hebrew mode, accessed the ALEPH software, tried the
  1750. arrow keys and they worked OK.  Then I left ALEPH and started Lynx and got the
  1751. same symptoms you reported.  The three steps above fixed the problem.
  1752.  
  1753. [NOTE: In Kermit 95, the arrow keys, along with all other keys, are set up
  1754. automatically whenever you give a SET TERMINAL TYPE command.]
  1755.  
  1756. - Frank
  1757. -------------------------------------------------------------------------------
  1758.  
  1759. 24 MS-DOS Kermit under Windows Can't Find My Port
  1760. Q: We use Kermit 3.14 very heavily on our campus. From DOS everything works
  1761. great. From MS-Windows 3.x, however, sometimes it works but often our users
  1762. will get a message like:
  1763.  
  1764.   Unknown hardware for port, using BIOS...
  1765.  
  1766. or:
  1767.  
  1768.   Cannot use RTS/CTS on non-UART port
  1769.  
  1770. A: First, let's assume that your COM port is not, in fact, an internal
  1771. "controllerless" modem, such as a Winmodem or RPI modem -- you can't use these
  1772. with MS-DOS Kermit or, for that matter, with any non-Windows application or in
  1773. any operating system other than Microsoft Windows.  See the sections on RPI
  1774. modems and Winmodems for more information about this.
  1775.  
  1776. Windows and/or Windows communications programs tamper with the PC BIOS, where
  1777. Kermit goes to find out what ports are available and what their addresses (and
  1778. IRQs) are.  The solution to this problem is to supply this information to
  1779. Kermit yourself.
  1780.  
  1781. Here is a macro you can use to set your port under Windows.  MS-DOS Kermit 3.14
  1782. is required.
  1783.  
  1784.   define PORT -
  1785.     if not = \v(argc) 2 end 1 Port number required, -
  1786.     if not = 0 \findex(:\%1:,:1:2:3:4:) forward PORT\%1, -
  1787.     end 1 \%1 - bad port number, -
  1788.     :PORT1, set com1 \x03f8 4, set port 1, end \v(status), -
  1789.     :PORT2, set com2 \x02f8 3, set port 2, end \v(status), -
  1790.     :PORT3, set com3 \x03e8 4, set port 3, end \v(status), -
  1791.     :PORT4, set com4 \x02e8 3, set port 4, end \v(status)
  1792.  
  1793. Put this macro definition in your MSCUSTOM.INI file and then just tell Kermit
  1794. "port 1", "port 2", "port 3", or "port 4" instead of "set port 1", etc, and
  1795. everything should work as expected.
  1796.  
  1797. IMPORTANT: The addresses and IRQs are the most common ones, but they are not
  1798. going to work on every machine.  PS/2s have different addresses and IRQs for
  1799. COM3 and COM4.  Many add-on cards -- especially internal modems -- might use
  1800. different IRQs altogether, like 5.  Again, see KERMIT.BWR for the gruesome
  1801. details.
  1802.  
  1803. Another user found that the following PORT macro also worked satisfactorily:
  1804.  
  1805.   define PORT -
  1806.     if not = \v(argc) 2 end 1 Port number required, -
  1807.     if not = 0 \findex(:\%1:,:1:2:3:4:) forward PORT\%1, -
  1808.     end 1 \%1 - bad port number, -
  1809.     :PORT1, run {MODE COM1:19,N,8,1}, set port 1, end \v(status), -
  1810.     :PORT2, run {MODE COM2:19,N,8,1}, set port 2, end \v(status), -
  1811.     :PORT3, run {MODE COM3:19,N,8,1}, set port 3, end \v(status), -
  1812.     :PORT4, run {MODE COM4:19,N,8,1}, set port 4, end \v(status)
  1813.  
  1814. -------------------------------------------------------------------------------
  1815.  
  1816. 25 If I Have an Error Correcting Modem Why Do I Need Kermit Protocol?
  1817. "If modern modems are capable of hardware error correction and compression,
  1818. isn't it redundant and inefficient to continue to use file-transfer protocols
  1819. like Kermit and ZMODEM that provide the same services?"
  1820.  
  1821. This is a common misconception, and, unfortunately, one that is promoted by
  1822. many of the modem makers themselves (e.g. when you read about protocols in the
  1823. modem manuals).  The modem makers (some of them) might excel at what they do,
  1824. but they are generally not experts on computers and software.  For example, the
  1825. following appears in a current modem manual:
  1826.  
  1827.     Generally, the most efficient file-transfer operations are achieved
  1828.     when the EC modem does the error checking in hardware, and the
  1829.     file-transfer protocol does not duplicate this effort. The YMODEM-G
  1830.     file-transfer protocol provides this level of service. This protocol
  1831.     was written for use with high-speed, error-control modems. This
  1832.     protocol does not provide any error-detection or recovery capability.
  1833.  
  1834. But it is not true that protocols like YMODEM-g (or, as is often suggested by
  1835. newcomers to modem communication, no protocol at all) are the best to use with
  1836. error-correcting modems.
  1837.  
  1838. That's because errors can also occur (and often do) outside the modem-to-modem
  1839. connection.  The most common causes are lack of sufficiently effective DCE/DTE
  1840. flow control and resulting buffer overflows in the receiver; unbuffered UARTs
  1841. that can't be serviced fast enough by a busy or slow CPU; interrupt conflicts
  1842. (including characters lost due to having interrupts turned off by other
  1843. drivers, e.g. disk-caching programs), and on and on -- things that are beyond
  1844. the modem's control.
  1845.  
  1846. Second, you don't always know that your error-correcting modem will make a
  1847. successful MNP or V.42 connection with the other modem.  The two modems might
  1848. have mismatched capabilities or there might be a "failure to negotiate" the
  1849. capabilities they do have.  Would you want to use different file transfer
  1850. methods depending on the type of connection negotiated by the modems?
  1851.  
  1852. Third, the communication channel outside the modems might not be fully
  1853. transparent.  For example, it might chop off the 8th bit of each byte, or it
  1854. might filter out certain characters, or use them for special purposes rather
  1855. than treating them as data.  This is common with terminal servers and other
  1856. types of communications front ends.
  1857.  
  1858. Fast protocols like Zmodem and modern Kermit impose little additional overhead,
  1859. and that small amount of overhead is well worth the savings in failed or
  1860. corrupt transfers, which are inevitable when using non-recovering methods in
  1861. situations like the ones described above.
  1862.  
  1863. But even more fundamentally: you can't know in advance that there will be no
  1864. errors.  So using a file transfer procedure without error recovery is silly,
  1865. because if there are errors, you'll have to start all over again.  It's like
  1866. not buying fire insurance for your house because you think it is fireproof.
  1867.  
  1868. Finally, what happens when the connection is broken?  Say, after transferring
  1869. 99 megabytes of a 100-megabyte file?  Error-correcting modems can't stop wires
  1870. from being cut or pulled out, nor can they prevent power failures or keep
  1871. computers or applications from crashing.  So again, you need a good error
  1872. recovery protocol.  Both Zmodem and Kermit can pick an interrupted transfer up
  1873. from the point of failure.
  1874. -------------------------------------------------------------------------------
  1875.  
  1876. 26 How Do I Use 'SET KEY' with PC F-Keys, etc, in UNIX or VMS C-Kermit?
  1877. The C-Kermit versions for UNIX, VMS, and so on, that do not have direct access
  1878. to the keyboard and screen, and rely on your console driver, terminal window,
  1879. external terminal emulator (such as MS-DOS Kermit), or actual terminal to
  1880. perform the terminal functions.
  1881.  
  1882. UNIX is an interesting case.  Traditionally, UNIX was accessed through a
  1883. terminal that was plugged into a terminal port on a timesharing system.  Thus,
  1884. there is no keyboard and screen -- just a communication port.  In subsequent
  1885. years, this type of access was largely replaced by terminal servers, but there
  1886. was still no keyboard and screen.  However, now that we have a plethora of
  1887. PC-based UNIX varieties that run on workstations (PCs) that actually do have a
  1888. keyboard and screen, it would seem to make sense that Kermit should be able to
  1889. see all the keys.
  1890.  
  1891. Unfortunately, this is not the case.  Most varieties of UNIX do not let the
  1892. application see the keyboard.  There is no kernel function called "get keyboard
  1893. scan code".  There is only read(), and read() reads a character, not a
  1894. multibyte scan code.  Thus, even if your console driver has programmed (say)
  1895. your F1 key to send (say) ESC O P, Kermit will read three characters in
  1896. succession, as if they were three keystrokes, not one.  It has no way of
  1897. knowing that you pressed the F1 key.  As far Kermit knows, you pressed the Esc
  1898. key, then the O key, then the P key.
  1899.  
  1900. Now perhaps Linux *does* have a system call to let an application at the
  1901. keyboard.  But...
  1902.  
  1903.    - In what contexts does it work?  Only on the raw console?  In an xterm
  1904.      window?  etc etc.
  1905.  
  1906.    - Does it require special privilege to execute?
  1907.  
  1908.    - What about all the other versions of UNIX that run on PCs -- FreeBSD,
  1909.      SCO, Solaris/Intel, etc etc?
  1910.  
  1911.    - What about all the other versions of UNIX that run on non-PC
  1912.      workstations -- SunOS, Solaris/Sparc, HP-UX, AIX, SGI, etc?
  1913.  
  1914. So the answer is, for now at least -- and as the documentation states --
  1915. C-Kermit's SET KEY command in UNIX (and VMS, AOS/VS, VOS, etc) works only for
  1916. keys that generate a single 8-bit value, 0..255.  Other types of mappings will
  1917. have to be accomplished outside of Kermit by configuring your console driver,
  1918. your xterm (e.g. with Xmodmap), and so on.
  1919. -------------------------------------------------------------------------------
  1920.  
  1921. 27 How Can I Exit from C-Kermit without Hanging Up?
  1922. Many people want to be able to make a dialout connection with UNIX C-Kermit,
  1923. but then use some other software on the connection that C-Kermit made.  For
  1924. example, they want to use C-Kermit as their SLIP or PPP dialer.  But they
  1925. quickly find that when they exit from C-Kermit, that the connection is gone
  1926. before they can start the other application.
  1927.  
  1928. It is a fundamental property of UNIX (and VMS, and Windows 95 and NT, and most
  1929. other modern operating systems) that when a process exits, then every file that
  1930. was opened by that process is automatically closed by the operating system.  In
  1931. most cases, closing a terminal device (such as a dialout serial port) hangs up
  1932. the modem (by turning off the DTR signal).  There is nothing the process can do
  1933. about it.
  1934.  
  1935. However, many workarounds are possible.  Here are just a few:
  1936.  
  1937.    - If your C-Kermit version supports the REDIRECT command, use it to
  1938.      start the desired application (e.g. "redirect pppd").  The REDIRECT
  1939.      command runs the given application with its standard input and output
  1940.      redirected to the communications channel opened by C-Kermit's most
  1941.      recent SET LINE or SET HOST command.
  1942.  
  1943.    - Tell C-Kermit to SET MODEM HANGUP-METHOD RS232, and then configure
  1944.      your modem to ignore DTR (not recommended).  "Using C-Kermit", 2nd
  1945.      Ed., p.86.
  1946.  
  1947.    - When opening the device first from another application, feed the file
  1948.      descriptor for the device to C-Kermit using the "-l" (lowercase
  1949.      letter L) command-line option followed by the numeric file
  1950.      descriptor, e.g.  "kermit -l 6".  Then Kermit will not attempt to
  1951.      open the device, nor to change its characteristics, nor to close it
  1952.      when done, and when Kermit exits, it will still be available to the
  1953.      invoking process.  "Using C-Kermit", 2nd Ed., p.469.
  1954.  
  1955.    - When opening the device with C-Kermit, find out the file descriptor
  1956.      of the open device (it is given by C-Kermit's \v(ttyfd) variable) and
  1957.      then run ("!")  your other program from the C-Kermit prompt, feeding
  1958.      it the file descriptor, e.g. through shell redirection or a command
  1959.      line option (the method depends on the other program, the
  1960.      capabilities of the shell, etc).  "Using C-Kermit", 2nd Ed., p.356
  1961.  
  1962.    - In UNIX, after Kermit makes the connection, type "show comm" to find
  1963.      out the filename of the lock file.  Then suspend Kermit, delete the
  1964.      lock file, then start the other program and tell it to open the same
  1965.      tty device.
  1966.  
  1967. -------------------------------------------------------------------------------
  1968.  
  1969. 28 What Is SuperKermit?
  1970. When the Kermit protocol was first developed in 1981, it had short packets and
  1971. did not use sliding windows, but the design was deliberately extensible to
  1972. allow for the addition of these and many other features later.
  1973.  
  1974. A couple years later, when we defined the protocol for long packets and sliding
  1975. windows, somebody somewhere started calling it "SuperKermit".  Really, there's
  1976. no such thing -- Kermit is Kermit.  It's an extensible protocol in which the
  1977. two file transfer partners negotiate automatically about what features they
  1978. have in common and agree to use them.
  1979.  
  1980. All modern Columbia Kermits support long packets and sliding windows (except
  1981. IBM Mainframe Kermit does not "do windows" because it exists only in a
  1982. half-duplex environment, whereas full duplex connections are needed for sliding
  1983. windows).  They also support compression, single and locking shifts (for moving
  1984. 8-bit data efficiently through 7-bit communication channels), file-transfer
  1985. recovery, dynamic packet lengths and timeouts, and all sorts of other advanced
  1986. and serious features that whoever coined the term "SuperKermit" never dreamed
  1987. about.
  1988.  
  1989. Usually when BBSs or non-Columbia communication programs refer to "SuperKermit"
  1990. they mean a 1985-vintage implementation of the Kermit protocol that implements
  1991. a primitive and not very robust form of sliding windows, usually not in
  1992. combination with long packets.  However, if it is properly implemented, it
  1993. should interoperate successfully with any other Kermit implementation, no
  1994. matter how advanced or how minimal.  That's the whole point of Kermit protocol.
  1995. -------------------------------------------------------------------------------
  1996.  
  1997. 29 Is Kermit Software Year-2000 Compliant?
  1998. Kermit software is not, for the most part, date dependent.  It makes
  1999. connections, performs terminal emulation (in those versions that include this
  2000. feature), transfers files, translates character sets, and, in most cases,
  2001. executes scripts regardless of the date.
  2002.  
  2003. "Year 2000 compliance" depends on the Kermit program and the underlying
  2004. platform.  If the operating system, file system, BIOS, hardware, and/or other
  2005. critical component is not ready for the year 2000, then most likely Kermit
  2006. isn't either, since it relies on the underlying OS and hardware for date / time
  2007. service.
  2008.  
  2009. The primary relevance of this question to Kermit software is whether
  2010. post-millenium file dates are recognized, transmitted, received, and reproduced
  2011. correctly during the file transfer process.  This consideration, in turn,
  2012. applies only to those Kermit versions that implement the optional "Attribute
  2013. Packet" feature.  These include C-Kermit, Kermit 95, MS-DOS Kermit, Kermit-370,
  2014. and PDP-11 Kermit, all of which are coded to write and read 4-digit years in
  2015. all protocol messages.  (Note that these programs also include a command to
  2016. disable file-date processing altogether, in the event that it does not work as
  2017. intended.)
  2018.  
  2019. If post-millenium dates are not processed correctly, file transfer will still
  2020. take place, but the creation or modification date of the received file might be
  2021. incorrect.  An exception would be if the "file collision update" feature is
  2022. being used to prevent unnecessary transfer of files that have not changed since
  2023. the last time a transfer took place; in this case, a file might be transferred
  2024. unnecessarily, or it might not be transferred when it should have been.
  2025. Correct operation of the update feature depends on both Kermit programs having
  2026. the correct date and time.
  2027.  
  2028. Another exception would be when using the /BEFORE: or /AFTER:  file-selection
  2029. switches during file transfer.  If dates are not processed correctly, files
  2030. could be skipped that should have been sent, or vice versa.
  2031.  
  2032. If an incoming file is stored with the wrong date, for example with a year of
  2033. 1900 rather than 2000, this might affect backup, archival, and cleanup
  2034. procedures, perhaps resulting in unwanted file deletion.  For example (in VMS):
  2035.  
  2036. $ delete/before="-90-" *.*;*
  2037. $ dir/since=1-jan-2000
  2038. $ purge/before=login *.*
  2039.  
  2040. Of secondary importance are the time stamps in the transaction and/or debug
  2041. logs, and the date-related script programming constructs, such as \v(date),
  2042. \v(ndate), \v(day), \v(nday), and perhaps also the time-related ones, \v(time)
  2043. and \v(ntime), insofar as they might be affected by the date.  Note: the
  2044. aforementioned script programming constructs are available only in C-Kermit,
  2045. Kermit 95, and MS-DOS Kermit.  The \v(ndate) is a numeric-format date of the
  2046. form yyyymmdd, suitable for comparison and sorting: e.g. 19970208 or 20011231.
  2047. If the underlying operating system returns the correct date information, these
  2048. variables will have the proper values.  If not, then scripts that make
  2049. decisions based on these variables might not operate correctly, but then
  2050. neither will any other date-related software on your computer.
  2051.  
  2052. Here is the current situation for the most popular Kermit software products.
  2053. The minimum version known to be Year-2000 compliant is shown.  We make no
  2054. claims whatsoever about the underlying operating systems or file systems.  The
  2055. situation with Kermit programs not listed here is at present unknown.
  2056.  
  2057.    - MS-DOS, PC-DOS, DR-DOS:
  2058.      MS-DOS Kermit: Version 3.15 or later required.
  2059.  
  2060.  
  2061.    - Windows 3.0/3.1/3.11:
  2062.      MS-DOS Kermit: Version 3.15 or later required.  IMPORTANT: MS-DOS
  2063.      Kermit is not supported under Windows 95, Windows 98, Windows NT,
  2064.      Windows 2000, or OS/2.  The supported Kermit software for those
  2065.      platforms is Kermit 95.
  2066.  
  2067.  
  2068.    - Windows 95 and 98:
  2069.      Kermit 95: Version 1.1.3 or later required (note that versions
  2070.      1.1.10, 1.1.11, etc, are later than 1.1.3; thus, for example, version
  2071.      1.1.17 is Year-2000 ready).
  2072.  
  2073.  
  2074.    - Windows NT and Windows 2000:
  2075.      Kermit 95: Version 1.1.3 or later required.
  2076.  
  2077.  
  2078.    - OS/2:
  2079.      Kermit 95: Version 1.1.11 or later required.
  2080.  
  2081.  
  2082.    - UNIX:
  2083.      C-Kermit: Version 6.0.192 or later required.
  2084.  
  2085.  
  2086.    - VMS:
  2087.      C-Kermit: Yes, all versions.  Kermit-32: unknown; Kermit-32 has not
  2088.      been supported since about 1987.  If you are using Kermit-32, please
  2089.      upgrade to C-Kermit.
  2090.  
  2091.  
  2092.    - Stratus VOS
  2093.      C-Kermit: Version 6.0.192 or later and VOS 12.3 or later required.
  2094.  
  2095.  
  2096.    - VM/CMS:
  2097.      CMS Version 13 and Kermit-370 Version 4.3.2 or later required.
  2098.  
  2099.  
  2100.    - MVS/TSO:
  2101.      Kermit-370 for TSO: Version 4.3.2 or later required.
  2102.  
  2103.  
  2104.    - MVS/ROSCOE:
  2105.      Kermit-370 for ROSCOE: Version 4.3.2 or later required.
  2106.  
  2107.  
  2108.    - MUSIC:
  2109.      Kermit-370 for MUSIC: Version 4.3.0 or later required.
  2110.  
  2111.  
  2112.    - CICS:
  2113.      Kermit-370 for CICS: Version 4.3.0 or later required.
  2114.  
  2115.  
  2116.    - RT-11:
  2117.      KRT for RT-11 and TSX+: Version 3.63 or later required.
  2118.  
  2119.  
  2120.    - RSTS/E:
  2121.      KRT for RSTS/E: Version 3.63 or later required.
  2122.  
  2123. -------------------------------------------------------------------------------
  2124.  
  2125. 30 Is There a Kermit Library?
  2126. Many software makers ask us for Kermit software in special forms that can be
  2127. embedded in their applications, to provide file transfer or other
  2128. communications functions to their customers.
  2129.  
  2130. But each software maker wants something different:
  2131.  
  2132.    - Connection establishment but no data transfer
  2133.  
  2134.    - Data transfer using pre-existing connection
  2135.  
  2136.    - Connection establishment and data transfer
  2137.  
  2138.    - File transfer only without "bells and whistles"
  2139.  
  2140.    - Scripting but not terminal emulation
  2141.  
  2142.    - Serial communication but not networking
  2143.  
  2144.    - Networking but not serial communications
  2145.  
  2146.    - Binary file transfer but not text
  2147.  
  2148.    - Greek character-set conversion but not Cyrillic
  2149.  
  2150.    - Access to shell escapes allowed
  2151.  
  2152.    - Access to shell escapes forbidden
  2153.  
  2154.    - A pretty display
  2155.  
  2156.    - No display at all
  2157.  
  2158. and on and on.  And they desire this functionality to be packaged as a link
  2159. library for this or that platform, a DLL, an OCX, a VBX, an OLE or OLE-2
  2160. object, an Active X control, a Delphi component, a Netscape Plugin, a Java
  2161. object, a Perl, Tcl, or Python extension, etc etc etc.  The combinations of
  2162. functionality and interface are many, and there is no way we can satisfy them
  2163. without warehouses full of programmers.
  2164.  
  2165. Consequently we recommend that software makers who wish to embed Kermit
  2166. functionality in their products (communications, scripting, file transfer,
  2167. terminal emulation, character-set translation, etc) license and use the
  2168. programs we already have available.
  2169.  
  2170. The "API" (Application Program Interface) is the command language.  It is more
  2171. fully expressive, precise, comprehensive, and portable than any other API that
  2172. could be designed (look at all the commands in C-Kermit or MS-DOS Kermit or
  2173. Kermit 95; each one is there for a reason).  As new releases of the Kermit
  2174. program come out, your product can be easily updated and will benefit from all
  2175. the new features, fixes, and speedups automatically.
  2176.  
  2177. The recommended method of embedding Kermit in another application is via
  2178. command-line invocation.  The Kermit command line can contain a selection of
  2179. simple commands, and it can also refer to more complex command files or scripts
  2180. composed by or included with your application.  Kermit can be configured to
  2181. create any kind of log you need, and it can return the status of its operations
  2182. in various ways that can be used by your application.
  2183.  
  2184. When you license Kermit software for embedding in your application, we are
  2185. happy to work with you to ensure it meets your needs.  And if Kermit protocol
  2186. transfers are important to you, then it should also be important to you to come
  2187. to the source -- we developed the protocol, we continue to improve it, we
  2188. believe in it, and we stand behind it.
  2189.  
  2190. Following this advice allows each party to concentrate on what they are good
  2191. at, rather than unnecessarily duplicating efforts and "reinventing the wheel".
  2192. You concentrate on your application; we'll do the communications.  We support
  2193. our software, you support yours, everybody is happy.
  2194. -------------------------------------------------------------------------------
  2195.  
  2196. 31 How Do I Call up a Dialback Service?
  2197. A dialback service is one which you dial up to, provide some kind of
  2198. identification and/or authentication, such as a name and/or password, and then
  2199. it looks up your phone number in a database and calls you back.  It is a type
  2200. of security, based on having the phone numbers of all authorized callers, and
  2201. opening sessions for them only when they are calling from those numbers.
  2202.  
  2203. Suppose you were using a Hayes modem to make a call to a dialback service.  You
  2204. would do the following:
  2205.  
  2206. ATD7654321      (Dial the number)
  2207. CONNECT 14400   (Read the response)
  2208.  
  2209. Here you would have the identification / authentication dialog.  Now the
  2210. dialback service hangs up on you, and you must put the modem in answer mode:
  2211.  
  2212. NO CARRIER      (The connection is closed)
  2213. ATS0=1          (Tell the modem to answer the next call)
  2214.  
  2215. When the call comes in, the modem answers and you're on line.
  2216.  
  2217. But now you want to automate the process.  This is easily accomplished in
  2218. Kermit.  Let's use C-Kermit 6.0 to illustrate, since it has a new ANSWER
  2219. command.  Here is a simple script to do the job:
  2220.  
  2221. set modem type usr  ; or whatever
  2222. set port /dev/cua   ; or whatever
  2223. set speed 38400     ; or whatever
  2224. dial 7654321        ; dial the number
  2225. if fail stop
  2226.  
  2227. At this point, you would use INPUT and OUTPUT commands to accomplish the
  2228. identification / authentication dialog.  For example, if the dialback server
  2229. prompts you with USERNAME: and PASSWORD:, and your script had previously stored
  2230. these values in the variables \%u and \%p, respectively:
  2231.  
  2232. input 10 USERNAME:
  2233. if fail stop 1 No username prompt
  2234. output \%u\13
  2235. input 10 PASSWORD:
  2236. if fail stop 1 No password prompt
  2237. output \%p\13
  2238.  
  2239. Now you will need to hang up your end of the connection, and then wait for the
  2240. phone to ring:
  2241.  
  2242. hangup
  2243. answer 120
  2244. if fail stop 1 No callback
  2245.  
  2246. The ANSWER command conditions the modem for answering (ATS0=1 for Hayes and
  2247. compatible modems) and then waits the given number of seconds (120 in this
  2248. case) for the call to come in.  At this point, if the script is still
  2249. executing, you've got a connection.  You can give a CONNECT command, or execute
  2250. a login script, or whatever else you want to do.
  2251. -------------------------------------------------------------------------------
  2252.  
  2253. 32 How Does the Numeric Keypad Work?
  2254.  
  2255.     This discussion applies to MS-DOS Kermit.  The situation with Kermit 95
  2256.     is slightly different: In Kermit 95, the Num Lock key can be mapped
  2257.     directly and the PC numeric keypad is mapped to the VT terminal numeric
  2258.     keypad by default.
  2259.  
  2260. MS-DOS Kermit reads scan codes from the PC BIOS (but if you are using Windows,
  2261. then all sorts of software layers are inserted between Kermit and BIOS, so
  2262. matters are somewhat more uncertain.
  2263.  
  2264. The BIOS reports one scan code for a numeric keypad key when Num Lock is on,
  2265. and a different code when Num Lock is off.  All that MS-DOS Kermit is doing is
  2266. reading the scan codes from (what it thinks is) the BIOS.
  2267.  
  2268. To use the PC's numeric keypad as if it were a VT terminal's numeric keypad in
  2269. MS-DOS Kermit, you must make the appropriate key assignments, since they are
  2270. not made by default.  By default, when Num Lock is not on, the keys have the
  2271. same assignments as the gray keys which have the same label (e.g.  Home, End,
  2272. Left Arrow, etc), for the benefit of 88-key keyboards.
  2273.  
  2274. To make the desired key assignments, you can use the VT300.INI file in the
  2275. KEYBOARD subdirectory of the MS-DOS Kermit directory:
  2276.  
  2277. take keyboard\vt300.ini
  2278.  
  2279. The pertinent commands from this file are:
  2280.  
  2281. set key \850 \kkp0        ; Keypad 0 (Numlock)   Keypad 0
  2282. set key \338 \kkp0        ; Keypad 0 (Normal)    Keypad 0
  2283. set key \847 \kkp1        ; Keypad 1 (Numlock)   Keypad 1
  2284. set key \335 \kkp1        ; Keypad 1 (Normal)    Keypad 1
  2285. set key \848 \kkp2        ; Keypad 2 (Numlock)   Keypad 2
  2286. set key \336 \kkp2        ; Keypad 2 (Normal)    Keypad 2
  2287. set key \849 \kkp3        ; Keypad 3 (Numlock)   Keypad 3
  2288. set key \337 \kkp3        ; Keypad 3 (Normal)    Keypad 3
  2289. set key \843 \kkp4        ; Keypad 4 (Numlock)   Keypad 4
  2290. set key \331 \kkp4        ; Keypad 4 (Normal)    Keypad 4
  2291. set key \844 \kkp5        ; Keypad 5 (Numlock)   Keypad 5
  2292. set key \332 \kkp5        ; Keypad 5 (Normal)    Keypad 5
  2293. set key \845 \kkp6        ; Keypad 6 (Numlock)   Keypad 6
  2294. set key \333 \kkp6        ; Keypad 6 (Normal)    Keypad 6
  2295. set key \839 \kkp7        ; Keypad 7 (Numlock)   Keypad 7
  2296. set key \327 \kkp7        ; Keypad 7 (Normal)    Keypad 7
  2297. set key \840 \kkp8        ; Keypad 8 (Numlock)   Keypad 8
  2298. set key \328 \kkp8        ; Keypad 8 (normal)    Keypad 8
  2299. set key \841 \kkp9        ; Keypad 9 (Numlock)   Keypad 9
  2300. set key \329 \kkp9        ; Keypad 9 (Normal)    Keypad 9
  2301.  
  2302. set key \334  \kkpminus   ; Keypad +             Keypad -
  2303. set key \2382 \kkpcoma    ; ALT Keypad +         Keypad ,
  2304. set key \851  \kkpdot     ; Keypad . (Numlock)   Keypad .
  2305. set key \339  \kkpdot     ; Keypad . (normal)    Keypad .
  2306. set key \4365 \Kkpenter   ; Keypad Enter         Keypad Enter
  2307.  
  2308.                           ; F1                   PF1 (default Kermit)
  2309.                           ; Use GOLD.COM to make Num Lock work as PF1/Gold.
  2310. set key \325 \kPF1        ; This works with WPGGOLD.COM.
  2311.  
  2312. set key \4399 \kPF2       ; Keypad /             PF2
  2313. set key \311  \kPF3       ; Keypad *             PF3
  2314. set key \330  \kPF4       ; Keypad -             PF4 Key
  2315.  
  2316. You need the GOLD TSR to make the Num Lock key work like the DEC Gold key.  The
  2317. GOLD TSR is found in the same directory as the VT300.INI file.
  2318.  
  2319. The rest of the commands in the VT300.INI file set up the function keys and
  2320. editing keys to be like the corresponding DEC VT220/320 keys.
  2321.  
  2322. But there is still one more piece to the puzzle.  As noted, the VT keypad can
  2323. be in one of two modes: numeric or application.  It is the responsibility of
  2324. the host application to send an escape sequence to put the keypad into the
  2325. appropriate mode before attempting to read keystrokes from it.  But some
  2326. applications fail to do that and simply ASSUME that the keypad is in the right
  2327. mode.  In many cases this assumption is wrong.  So MS-DOS Kermit has a command
  2328. that lets you force the keypad into the desired mode:
  2329.  
  2330. SET TERMINAL KEYPAD { APPLICATION, NUMERIC }
  2331.  
  2332. -------------------------------------------------------------------------------
  2333.  
  2334. 33 How to Get Rid of the "OK to Exit?" Prompt?
  2335. When I try to exit from Kermit it says:
  2336.  
  2337. A serial connection might still be active on com2.
  2338. OK to exit?
  2339.  
  2340. But the connection is closed!  How do I make this message and prompt go away?
  2341. It prevents scripts from running unattended.
  2342.  
  2343. Short answer:
  2344.  
  2345.     SET EXIT WARNING OFF
  2346.  
  2347. Long answer:  Kermit gives this message and prompt when given the EXIT command
  2348. (explicit or implied), or when told to change its communication device, and a
  2349. connection appears to be active on the current one.  On a serial device, this
  2350. means that the Carrier Detect (CD) signal is still present.  On a network
  2351. connection, it means that Kermit has not closed the connection and it does not
  2352. seem that Kermit's network partner has closed it either.
  2353.  
  2354. If you are using a modem, the best course is to fix it (or the cable) so CD
  2355. tracks the connection.  Kermit generally tries to do this itself, but sometimes
  2356. it is not possible due to switch settings in the modem.  See your modem manual
  2357. for details.
  2358.  
  2359. In some cases, however, the underlying operating system or device driver does
  2360. not provide Kermit with good information.
  2361.  
  2362. If you can't fix the modem or cable to report the connection status properly,
  2363. use SET EXIT WARNING OFF to tell Kermit to ignore the apparent connection
  2364. status upon EXIT.
  2365. -------------------------------------------------------------------------------
  2366.  
  2367. 34 How to Tell Kermit to Ignore Dialtone?
  2368. Sometimes the telephone being used to place a modem call does not present a
  2369. dialtone that the modem recognizes.  This usually happens with PBXs, ISDN
  2370. phones, etc.  But Kermit programs generally tell the modem to wait for dialtone
  2371. before dialing.
  2372.  
  2373. To find out how to get around this feature, you'll need to look at your modem
  2374. manual.  If it's a Hayes compatible (i.e.  uses the AT command set), then it's
  2375. probably a matter of changing the "X" value in the init string.  Most Kermit
  2376. init strings use X4, in order to get the widest possible selection of result
  2377. codes.  In many modems, X3 is used to select "blind dialing" (i.e. without
  2378. waiting for dialtone), but this also sacrifices the ability to get a BUSY
  2379. response, and therefore to redial automatically if the line is busy.  Hopefully
  2380. your modem has finer-grained selections.
  2381.  
  2382. In C-Kermit or Kermit 95, a good way to change the X value in the init string
  2383. is, after you set your modem type:
  2384.  
  2385.   set modem type xxxx
  2386.   set modem command init \freplace(\v(m_init),X4,X3)
  2387.  
  2388. This assumes your modem type is "xxxx", and its init string contains X4.
  2389.  
  2390. In MS-DOS Kermit, just edit the dialing script.
  2391. -------------------------------------------------------------------------------
  2392.  
  2393. 35 Where is the Dialing Script for My Modem?
  2394. C-Kermit and Kermit 95 do not use dialing scripts; their modem support is built
  2395. in.  To see a list of the modems supported, type:
  2396.  
  2397. set modem type ?
  2398.  
  2399. at the prompt.  If your modem is not listed, then (a) maybe one of the other
  2400. modem types will work ("generic-high-speed" is usually a good guess), and (b)
  2401. you can install your own modem definition as described on pages 90-92 of Using
  2402. C-Kermit; this, of course, requires knowledge of how to operate your modem,
  2403. which comes from reading the manual (if any) that came with it.
  2404.  
  2405. MS-DOS Kermit, on the other hand, uses dialing scripts, one per modem type.
  2406. The ones we have are in the MODEMS subdirectory of your MS-DOS Kermit
  2407. directory.  If you don't see one there for your modem, it is easy to adapt one
  2408. of the existing ones.  Just use a text editor to change the modem-specific
  2409. commands to the ones for your modem; consult your modem manual to find out what
  2410. its commands are.
  2411.  
  2412. In either case, if you have added support for a new modem, please send your new
  2413. definitions or script back to us, along with a complete description of your
  2414. modem's manufacturer, name, model designation, and features (modulation, error
  2415. correction and compression protocols, etc), so we can make them available to
  2416. others.
  2417. -------------------------------------------------------------------------------
  2418.  
  2419. 36 I'm Having Terminal Emulation Problems with C-Kermit
  2420. C-Kermit on UNIX, VMS, etc, does not perform terminal emulation at all; nobody
  2421. ever claimed it did.  Instead, it is a semitransparent (or, if you make it so)
  2422. a fully transparent communications pipe between the remote computer or service
  2423. and your local terminal, terminal emulator, terminal window, or console, which
  2424. provides the terminal functions.  Thus, it is similar to Telnet, cu, tip, "set
  2425. host" in VMS, etc, but with added functionality (file transfer and management,
  2426. character-set translation, scripting, etc).
  2427.  
  2428. If you experience fractured screens, you probably have a mismatch between the
  2429. type of terminal or emulator you are running C-Kermit and the type the remote
  2430. host or service thinks you have.  Solution: let the host know what type of
  2431. terminal you really have.  For example, in Linux it would be ANSI or SCOANSI.
  2432. In an HPTERM window, it would be HPTERM.  In an AIX window, it would be
  2433. AIXTERM, etc.
  2434.  
  2435. If your arrow and function keys don't work, then you must configure your
  2436. terminal or emulator to have these keys send what the host or application
  2437. expects them to send.  The method for doing this depends on your terminal or
  2438. emulator.  For example, when using xterm or another X-based terminal window,
  2439. use xmodmap to configure your keyboard.  C-Kermit itself can't be used for this
  2440. (even though it has a SET KEY command) because it can't "see" the special keys
  2441. (arrow keys, function keys, editing keys, etc).
  2442.  
  2443. If host-directed transparent printing doesn't work, this is a deficiency in
  2444. your terminal or emulator and has nothing to do with Kermit.  However, if you
  2445. have the ability to change the host application, then you can use C-Kermit's
  2446. autodownload and/or APC features to accomplish the same thing.  See the manual
  2447. for details.
  2448. -------------------------------------------------------------------------------
  2449.  
  2450. 37 Divide Overflow in MS-DOS Kermit
  2451. If you find that MS-DOS Kermit is giving you "Divide Overflow" errors after an
  2452. OS or hardware upgrade, or on a new PC:
  2453.  
  2454.    - If your PC is running Windows 95, Windows NT, or OS/2, then you
  2455.      should run the 32-bit version of Kermit for those platforms Kermit
  2456.      95.  This is the only Kermit software that is recommended or
  2457.      supported for Windows 95, Windows NT, or OS/2.
  2458.  
  2459.  
  2460.    - If your PC is running DOS (MS-DOS, PC-DOS, DR-DOS, etc) as its base
  2461.      operating system (and perhaps Windows 3.x on top of that), then
  2462.      upgrade your version of MS-DOS Kermit to the current release, MS-DOS
  2463.      Kermit 3.15
  2464.  
  2465. -------------------------------------------------------------------------------
  2466.  
  2467. 38 Problems Using XYZMODEM External Protocols in C-Kermit
  2468.  
  2469. From: fdc@kermit.columbia.edu (Frank da Cruz)
  2470. Newsgroups: comp.unix.aix
  2471. Subject: Re: Kermit Using External Protocols - XYZ modem
  2472. Date: 21 Nov 1997 14:39:12 GMT
  2473.  
  2474. In article <3474C6B4.6819@amscomp.com>,
  2475. Stephen Tait  <stephent@amscomp.com> wrote:
  2476. : I am having problems sendig a file from AIX 3.2/4.X over a modem to
  2477. : a DOS BBS system using Kermit and XMODEM. Using Kermit I dial the
  2478. : BBS, connect, enter login and password and the file name that I want
  2479. : to send to it. At this point the DOS BBS informs me to select a
  2480. : protocol:
  2481. :
  2482. : - for PCPLUS (DOS to DOS), I select PgUp, X for XMODEM, enter the
  2483. : filename and it all works fine.
  2484. :
  2485. : - for AIX, with Kermit 6.0.192 and XYZMODEM protocols from OMEN
  2486. : Technology site, I cannot send the file to the BBS because I don't
  2487. : know what the equivilant command for "PgUp"(send) in PCPLUS is in
  2488. : Kermit.  Also I have used scripting to autologin to the BBS send the
  2489. : file using the (sx) XMODEM command but all I get is a hung
  2490. : terminal:.(
  2491. :
  2492. : I have tried Kermit Support and they tell me, I quote "Omen Tech
  2493. : versions of sz rz ... do not allow redirection of stdio.You will
  2494. : need to find public domain versions of these protocols if you want
  2495. : to use them or purchase appropriate versions from Omen Tech."
  2496. :
  2497. : I find this hard to believe, and if somebody knows anything that can
  2498. : be of help I would be extremely gratefull:.)
  2499. :
  2500. By popular demand, C-Kermit 6.0 includes the ability to run external
  2501. protocols.  X-, Y-, and ZMODEM are external protocols to Kermit.
  2502. External means external, not built-in, and that they come from
  2503. elsewhere, not from the Kermit Project; you have to find your own
  2504. source for external protocol modules.
  2505.  
  2506. You are no doubt using Kermit to run your external protocols because
  2507. the sz/rz/sx/rx/sb/rb programs that you have will not make connections
  2508. for you.  They were never designed or intended to do that.
  2509.  
  2510. Furthermore, as you have learned, these programs do not meet the
  2511. fundamental requirement for an external protocol module: to transfer
  2512. files over standard input/output, which Kermit can then redirect over
  2513. the communications connection that it has made.  That's because,
  2514. starting in about 1988, the sz/rz/sx/rx/sb/rb programs were changed to
  2515. prevent this.  In other words, they are not designed or intended to be
  2516. used as external protocols.  This has nothing to do with C-Kermit or
  2517. the Kermit Project.
  2518.  
  2519. So you have five choices:
  2520.  
  2521.  1. Use Kermit protocol instead of X-, Y-, or ZMODEM.  No worries with
  2522.     getting software from different makers to mesh.
  2523.  
  2524.  2. Use crz/sz whch is designed to be used with Kermit and other
  2525.     programs.  The crzsz.zip file is available from many places
  2526.     including www.omen.com.
  2527.  
  2528.  3. License modern versions of sz/rz/sx/rx/sb/rb from Omen Technology
  2529.     that can be used as external protocols.
  2530.  
  2531.  4. License a monolithic program such as Pro-Yamm from Omen Technology
  2532.     so you won't need to run C-Kermit at all.
  2533.  
  2534.  5. Something entirely different from 1-4.
  2535.  
  2536. Frank da Cruz
  2537. The Kermit Project
  2538. Columbia University
  2539. http://www.columbia.edu/kermit/
  2540.  
  2541. -------------------------------------------------------------------------------
  2542.  
  2543. 39 Tone Dialing Changes to Pulse after First Digit
  2544. Some modems have a feature called adaptive dialing.  When they are told to dial
  2545. a number using Tone dialing, they check to make sure that dialtone has gone
  2546. away after dialing the first digit.  If it has not, the modem assumes the phone
  2547. line does not accept Tone dialing and so switches to Pulse.
  2548.  
  2549. When dialing out from a PBX, there is almost always a secondary dialtone.
  2550. Typically you take the phone off-hook, get the PBX dialtone, dial "9" (or other
  2551. number) to get an outside line, and then get the phone company's dialtone.  In
  2552. a situation like this, you need to tell the modem to expect the secondary
  2553. dialtone.  On Hayes and compatible modems, this is done by putting a "W" in the
  2554. dial string at the appropriate place.  For example, to dial 9 for an outside
  2555. line, and then 7654321, use ATDT9W7654321.  In C-Kermit and Kermit 95, this is
  2556. accomplished with:
  2557.  
  2558. SET DIAL PBX-OUTSIDE-PREFIX 9W
  2559.  
  2560. (replace "9" with your PBX's outside-line prefix).
  2561. -------------------------------------------------------------------------------
  2562.  
  2563. 40 How to Transfer Files with the HP-48?
  2564. Here's a brief summary:
  2565.  
  2566. Put the HP-48 in Kermit server mode.  Set up the Kermit client like this:
  2567.  
  2568.   SET MODEM TYPE DIRECT   ; (C-Kermit or Kermit 95)
  2569.   SET PORT COM1           ; (Or other communication port)
  2570.   SET SPEED 9600          ; (Serial port speed)
  2571.   SET CARRIER-WATCH OFF   ; (Don't require carrier)
  2572.   SET FLOW NONE           ; (Don't use flow control)
  2573.   SET PARITY NONE         ; (8 data bits, no parity)
  2574.   SET BLOCK 3             ; (if desired, or 2)
  2575.   SET CONTROL PREFIX ALL  ; (Necessary in Kermit 95)
  2576.  
  2577. For file transfer, use binary mode unless you are exporting or importing HP-48
  2578. objects:
  2579.  
  2580.   SET FILE TYPE BINARY
  2581.  
  2582. To transfer files:
  2583.  
  2584.   SEND filename           ; Send file(s) to the HP-48
  2585.   GET filename            ; Get file(s) from the HP-48
  2586.  
  2587. To change directory on the HP-48:
  2588.  
  2589.   REMOTE HOST { relative_directory_name } EVAL
  2590.  
  2591. To shut down the HP-48 Kermit server:
  2592.  
  2593.   FINISH
  2594.  
  2595. If file transfers fail, try:
  2596.  
  2597.   SET SEND TIMEOUT 20     ; (Or other number of seconds)
  2598.   SET SEND PAUSE 100      ; (Or other number of milliseconds)
  2599.  
  2600. CLICK HERE for further information.
  2601. -------------------------------------------------------------------------------
  2602.  
  2603. 41 I'm Having Trouble with F-Keys
  2604. Remember, your PC is not a real terminal.  In most cases, the PC has a
  2605. different kind of keyboard than a real terminal.  For example, a DEC VT100 has
  2606. no F-keys, but the PC has 10 or 12 of them.  However, a DEC VT220 or VT320 has
  2607. 20 F-keys; the PC still has only 10 or 12.
  2608.  
  2609.     If your complaint is that you have Kermit set to VT100 or VT102
  2610.     emulation and the F-keys don't work, that's because the VT1xx terminals
  2611.     do not have F-keys.  They do, however, have PF keys 1 through 4, and
  2612.     these are assigned by default to the top row of the numeric keypad.  If
  2613.     you need F-keys, you probably need VT220 or higher, not VT100.
  2614.  
  2615. For your PC's F-keys to work like those of the corresponding terminal, Kermit
  2616. must map the PC's F-keys to the terminal's.  If the terminal has more F-keys
  2617. than the PC, you might have trouble finding the extra ones (such as F13 through
  2618. F20).
  2619.  
  2620. In MS-DOS Kermit, F-keys must be set up with SET KEY commands.  A command file,
  2621. VT300.INI, is supplied for this purpose in the KEYBOARD subdirectory of the
  2622. Kermit directory.
  2623.  
  2624. In Kermit 95, F-keys are defined automatically for each terminal type as
  2625. described in the Kermit 95 manual.
  2626.  
  2627.     IMPORTANT: MS-DOS Kermit and Kermit 95 use difference keycodes in their
  2628.     SET KEY commands.  You can make Kermit 95 read an MS-DOS Kermit key
  2629.     mapping file by first telling it to SET MSKERMIT KEYCODES ON.
  2630.  
  2631. Excess F keys are generally assigned to PC Alt-(10-minus-xx).  For example, DEC
  2632. F13 is Alt-F3 on the PC; DEC F20 is Alt-F20.
  2633.  
  2634. Shifted F keys are generally used as User-Defined Keys (UDKs).  Excess UDKs
  2635. (such as Shift-F13) are entered as Alt-Shift-F13 (etc).
  2636.  
  2637. If you don't like Kermit's default F-key assignments, you can change them with
  2638. SET KEY (or, in K95 only, SET TERMINAL KEY).
  2639.  
  2640. What does an F-key send?  Normally we assign "Kverbs" to each F-key.  For
  2641. example, when Kermit is emulating a VT220 or higher, the F6 key is assigned the
  2642. verb \KdecF06 (DEC F6), which means "Send what the DEC F6 key sends".  This
  2643. doesn't tell you exactly what characters are sent, but that's the point, since
  2644. many of the DEC key groups can be in different "modes" (set by the host
  2645. application or by the user), in which they send different sequences.  Kermit
  2646. tracks the mode and "does the right thing".
  2647.  
  2648. If you want the F-key to send something other than what the appropriate Kverb
  2649. sends, you can make a specific assignment.  For example:
  2650.  
  2651. set key \375 \{27}@7
  2652.  
  2653. In which we make the F8 key send a nonstandard sequence (ESC At-Sign 7) used by
  2654. host-based WordPerfect.
  2655.  
  2656. One of our most common tech support questions is "My host application menu says
  2657. to press F7 but when I do that nothing happens".  If you have read this far,
  2658. you can probably figure out the answer for yourself:
  2659.  
  2660.    - Is Kermit's terminal type set to what the host thinks it is?
  2661.  
  2662.    - If you are using MS-DOS Kermit, have you given a TAKE command for the
  2663.      appropriate key mapping file for your terminal?  (Not necessary in
  2664.      K95.)
  2665.  
  2666.    - What does SHOW KEY say is assigned to the key in question?  For
  2667.      example, for F7, type "show key" at the Kermit prompt, and then in
  2668.      response to the "Press key:" prompt, press the F7 key.  It tells you
  2669.      the keycode and the assignment:
  2670.  
  2671.   [C:\k95\KEYMAPS\] K-95> show key
  2672.    Press key:
  2673.    Key code \374 F7 (default) => Verb: \Kdecf07
  2674.   [C:\k95\KEYMAPS\] K-95>
  2675.  
  2676.    - If the assignment does not appear to be correct, use SET KEY to
  2677.      change it.
  2678.  
  2679.    - In unusual cases, the host application might want the F-keys to
  2680.      mapped to special sequences, which are different from what the real
  2681.      terminal would send.  In cases like this, you have to find out from
  2682.      the application's documentation or help desk what those sequences
  2683.      are.  Once you have this information, you can create your own custom
  2684.      keymap for this application.
  2685.  
  2686. -------------------------------------------------------------------------------
  2687.