home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / msr313src.zip / mskerm.bwr < prev    next >
Text File  |  1994-05-12  |  136KB  |  2,752 lines

  1. File MSKERM.BWR           MS-DOS KERMIT 3.13 "BEWARE FILE"                  May 1994
  2.  
  3.                BUGS, LIMITATIONS, HINTS & TIPS
  4.  
  5. This file last updated: Thu May 12 08:34:08 1994
  6.  
  7. This file discusses common problems installing or using MS-DOS Kermit and
  8. presents solutions or workarounds in many cases.  It applies to version 3.13
  9. of MS-DOS Kermit for the IBM PC family and compatibles.  See KERMIT.HLP
  10. (MSKERM.HLP) for copyright information, terms and conditions, and a summary of
  11. MS-DOS Kermit commands.
  12.  
  13. Major sections of this file are marked by an equal sign (=) on the left margin.
  14.  
  15. The user manual for MS-DOS Kermit 3.13 is the book "Using MS-DOS Kermit",
  16. Second Edition, by Christine M. Gianone, published by Digital Press, Bedford,
  17. MA (1992), order number EY-H893E-DP.  Available in book and computer stores,
  18. or order from Columbia University at 1-212-854-3703.  Changes since the
  19. book was published are described in KERMIT.UPD (MSKERM.UPD).
  20.  
  21. Please consult "Using MS-DOS Kermit" and this file before contacting Kermit
  22. technical support staff.  Report problems via e-mail to kermit@columbia.edu on
  23. the Internet or to KERMIT@CUVMA.BITNET, or call +1 212 854-5126, or by Fax to
  24. +1 212 663-8202, or write to Kermit Distribution, Columbia University Academic
  25. Information Systems, 612 West 115th Street, New York, NY 10025, USA.
  26.  
  27. = PATCHES
  28.  
  29. The following patches correct problems noted since Version 3.13 was released:
  30.  
  31.  1. OPTIONAL: Specify 132-column video mode for Orchid Designer Professional
  32.     video adapter.
  33.  2. Make SHOW PROTOCOL display handshake correctly;
  34.     fix \KdgC3 and \KdgC4 keyboard verbs.
  35.  3. Correct insert/delete character when at right margin.
  36.  4. Correct CONNECT-mode status line to stay off if SET to OFF.
  37.  5. Correct invocation of DEC-MCS character set.
  38.  6. Correct selective-erase-in-line.
  39.  7. Correct two graphics mode errors.
  40.  8. Make ENQ response immediate on network connections.
  41.  9. OPTIONAL: Permit trying 132-column text display in Microsoft Windows.
  42.     Remove semicolon in left margin after Patch 9 comment to enable this patch.
  43.     If Windows blows up with this patch enabled, put the semicolon back.  In
  44.     many observed cases, Windows becomes deeply disturbed when the application
  45.     attempts to change video modes, but in others it works OK.  It depends on
  46.     whether the particular video adapter hardware is supported and fully
  47.     understood by the Windows video driver, plus other environmental factors
  48.     (TSRs, drivers, etc etc).
  49. 10. Allow TCP/IP domain server reply to come from a different address than the
  50.     one to which the request was sent.
  51. 11. Avoid creating a long packet when long packets have not been negotiated
  52.     and the last packet character is prefixed control code.
  53. 12. In Data General transparent printing, recognize binary and ASCII forms of
  54.     '2' and '3' in command arguments.
  55. 13. Correct memory corruption resulting from erase-to-end-of-line operations
  56.     for double-width characters on a 132-column screen.
  57. 14. OPTIONAL.  For Digital PATHWORKS version 4.0 and later only, enable use
  58.     of LAT in Windows and in expanded memory.  To activate the patch remove
  59.     the leading semicolons from the five lines after the Patch 14 comment.
  60.     Not recommended because of the severe contention over, and relatively
  61.     narrow bandwidth of, the EMS mapping mechanisms, which make EMS not
  62.     terribly well suited for realtime communications applications.
  63. 15. Correct unprefixing of 8-bit control codes during Kermit packet operations.
  64. 16. Ensure Packet-Driver signature is examined to full length.
  65. 17. Correct erase-to-end-of-screen when on status (bottom) screen line.
  66. 18. Arcnet ODI address byte location correction.
  67. 19. Correction to patch 18, must be used if patch 18 is used.
  68. 20. Correct erase cursor to end of line when on status line.
  69. 21. Include status line in TELNET session screen save/restore.
  70.  
  71. Other problems corrected since original 3.13 release:
  72.  
  73.  1. Patch-file-finding test in MSKERMIT.INI was wrong.
  74.  2. KERMIT.PIF file internally referred to MSTIBM.EXE rather than KERMIT.EXE.
  75.  3. USR Sportster dialing script (SPORT.SCR) contained a syntax error
  76.     ("W1" should not be in the initialization string).
  77.  4. COLS80.BAT included an invocation of a specific SVGA driver, rather than
  78.     the normal instructive ECHO commands.
  79.  
  80. = INCOMPATIBILITIES BETWEEN MS-DOS KERMIT 3.13 AND EARLIER VERSIONS:
  81.  
  82.  1. The TERMINALR/S macro capability is replaced by host-initiated change
  83.     of screen writing direction (details in KERMIT.UPD).  As a consequence
  84.     of this, host-based WordPerfect won't be able to load your key settings
  85.     (see next section).  Any other host software that sent the TERMINALR/S
  86.     sequences will also need to be converted in similar fashion.  ALL-IN-ONE
  87.     can make your screen look backwards, etc etc.  See the APC section in
  88.     KERMIT.UPD (MSKERM.UPD) for further details. 
  89.  
  90.  2. STATUS command removed.  There is no longer any way to display all of
  91.     MS-DOS Kermit's settings on a single screen.  Now use the SHOW command to
  92.     display categories of settings: SHOW TERMINAL, SHOW COMMUNICATIONS, SHOW
  93.     PROTOCOL, etc.
  94.  
  95.  3. STATISTICS, which displays file transfer statistics, has been added as a
  96.     top-level command, for compatibility with C-Kermit.     So if you were used
  97.     to typing "stat" to get a screenful of settings values, now you will get
  98.     file transfer statistics instead.
  99.  
  100.  4. Alt-n was previously bound by default to the \Knethold verb.  It is now
  101.     bound to the new \Knextsession verb.  \Knethold (used on TES, EBIOS, 
  102.     NASI/NACS, and various other PC networks or asynchronous communication
  103.     servers) has been moved to Alt-z.
  104.  
  105. = WORDPERFECT
  106.  
  107. WARNING: WordPerfect 6.0 comes with a fax program, FAXDIR.EXE, that runs
  108. as a TSR.  Reportedly, this program fiddles with the communication port while
  109. other communication applications (such as Kermit) are running.  If you
  110. experience strange effects -- like hangups or sudden unexplained changes of
  111. interface speed -- while running Kermit with FAXDIR loaded, remove FAXDIR.
  112.  
  113. WARNING 2: The WordPerfect Office Shell is not a true multitasking
  114. environment.  It simply brings the "hot-key'd" program to the foreground and
  115. deactivates the other programs.  Thus, you can't use it to accomplish Kermit
  116. file transfers in the "background", etc.  Even more important, you cannot use
  117. it to put Kermit TCP/IP connections on hold; the result will be a hung system,
  118. or worse.  Explanation: Kermit registers its address with the network board
  119. driver; the driver deposits incoming material at the given address.  If WP
  120. Shell has swapped Kermit out of memory and replaced it with another
  121. application, the board driver will write network packets all over the new
  122. application's memory, with unpredictable (but never good) results.
  123.  
  124. To make host-based UNIX WordPerfect work with MS-DOS Kermit 3.13, follow these
  125. directions (courtesy of Chris Thompson at Vanderbilt University; presumably
  126. similar steps can be followed for the VMS version):
  127.  
  128. . Go into the directory where the terminal definitions are stored (in my case
  129.   of WP 5.1 for AIX, it was /usr/wp51/shlib), and execute "wpterm" (it usually
  130.   requires you to be super-user).
  131.  
  132. . A screen containing all the terminal definitions will appear.  Highlight the
  133.   current Kermit terminal definition and hit Create.
  134.  
  135. . It will ask "Model new definition after Kermit?"  Answer yes.
  136.  
  137. . It will then ask for a new name for your new terminal definition.  Call it
  138.   something like KERMIT313.
  139.    
  140. . At the bottom of the screen, several options will appear.  Choose the option
  141.   for Terminal Control Characters.  It will then bring up a screen with the
  142.   different initialization strings and their values.  The first four items are
  143.   the ones that need altering (Terminal Initialization, Terminal Reset, Quick
  144.   Initialization, and Quick Reset).  Just delete "[27][?34h" or "[27][?34l"
  145.   (for initialization and reset, respectively) from the string and replace it
  146.   with "[27]_take \kermit\wpunix.ini[27]\" or "[27]_set key clear[27]\",
  147.   leaving the rest of the string intact.
  148.    
  149. . Be sure to change your WPTERM environment variable if you decided to create
  150.   a definition with a different name.
  151.  
  152. = MICROSOFT WINDOWS
  153.  
  154. MS-DOS Kermit is the recommended Kermit software for Windows.  Follow the
  155. directions in the KERMIT.HLP file for installing it.  However, you should be
  156. aware that Windows is not a friendly environment for communications software.
  157. Kermit will necessarily run slower under Windows than under DOS because
  158. Windows has higher overhead; Kermit gets fewer CPU cycles per unit time
  159. under Windows than it does under DOS.  Also, Windows has even more ways than
  160. DOS to interfere with Kermit -- interrupt and memory conflicts, etc.
  161.  
  162. To improve Kermit's performance under Windows, try any or all of the following:
  163.  
  164. 1. Use the PIF editor to raise Kermit's priority.  This will, of course, slow
  165.    down any other active applications while Kermit is running.
  166.  
  167. 2. Use the PIF editor to lock Kermit in memory.  This will also interfere with
  168.    other applications, but it eliminates the chance of Kermit being swapped
  169.    out when characters arrive on the communications device, which could
  170.    otherwise be lost while Windows swaps Kermit back in to process them.
  171.  
  172. 3. To avoid memory conflicts, don't let Windows choose its own memory
  173.    management layout.  Instead, make sure the "[enhanced]" section of your
  174.    SYSTEM.INI file agrees with your DOS memory configuration as to where
  175.    expanded memory goes and what areas to eXclude.  EMMEXCLUDE= and
  176.    EMMPAGEFRAME= items should be set to match your expectations.  Put nothing
  177.    in segments (i.e. EMMEXCLUDE) A000-BFFF, which must be reserved for the
  178.    video adapter.
  179.  
  180. 4. Make sure your serial communication (COM) device has a 16550A buffered
  181.    UART.  This reduces the number of interrupts that must be serviced (slowly)
  182.    by Windows before Kermit gets to see them.  Avoid internal modems, which
  183.    almost never have buffered UARTs.
  184.  
  185. 4.5 (So far, this one is just folklore...)  In the "[386Enh]" section of
  186.     SYSTEM.INI, you might find a section like this:
  187.  
  188.       COM1Irq=4
  189.       COM1Base=03F8
  190.       COM2Irq=3
  191.       COM2Base=02F8
  192.       COM3Irq=3
  193.       COM3Base=3220
  194.  
  195.    For any COM port that really has a 16550A buffered UART, try adding a
  196.    line like:
  197.  
  198.       COM1FIFO=1
  199.  
  200. 5. Install an alternative communication port driver, such as the WFXCOMM
  201.    driver that comes with WinFax PRO, Delrina Technology Inc.
  202.  
  203. 6. If you want to "minimize" Kermit (shrink it to an icon) while it is
  204.    running, e.g. for "background" file transfers, be sure that you have
  205.    allocated some background time for it in the KERMIT.PIF file.  Even then,
  206.    Kermit (and all other tasks) are at the mercy of other applications that
  207.    might not be willing to give up their shares of the CPU.
  208.  
  209. A handful of users have reported abnormal termination of Kermit in a window
  210. with the message, "This application has violated system integrity due to
  211. execution of an invalid instruction and will be terminated".  Diagnosis:
  212. Unknown.  Workaround:  Using PIFEDIT, check all the memory options in the
  213. KERMIT.PIF file, including "Lock Application Memory", "EMS Memory Locked",
  214. and "XMS Memory Locked".
  215.  
  216. = WINDOWS FOR WORKGROUPS
  217.  
  218. Windows-for-Workgroups (WFW) networking is built upon LAN Manager NDIS
  219. board handler software.  MS-DOS Kermit can make TCP/IP connections from 
  220. within Windows for Workgroups by using the DIS_PKT9.DOS and WINPKT.COM shims 
  221. that come on the Kermit disk.  For WFW 3.10 and earlier, NDIS drivers are 
  222. normal CONFIG.SYS device drivers, and DIS_PKT9 instructions apply.  For 
  223. WFW 3.11 and later, which uses its own built-in protected-mode NDIS 3.0:
  224.  
  225.  . In the SYSTEM.INI file, [Network Drivers] section, add DIS_PKT9.DOS at
  226.    the end of the "transport=" line.  Make sure you are using DIS_PKT9
  227.    as distributed on the MS-DOS Kermit diskette, and not DIS_PKT11 or any
  228.    other version.  See below about PROTOCOL.INI.
  229.  
  230.  . Also in the [Network Drivers] section of SYSTEM.INI file, include
  231.    "LoadRMDrivers=yes".  This means that the NET START command loads Real Mode
  232.    (RM) Drivers.  DIS_PKT9.DOS is a Real Mode Driver.
  233.  
  234.  . In AUTOEXEC.BAT, use NET START.
  235.  
  236.  . As with all network connections in Windows, you must either lock Kermit
  237.    in memory (Check Lock Application Memory in the KERMIT.PIF file) or else
  238.    load the WINPKT shim "on top of" DIS_PKT9, following the instructions in
  239.    WINPKT.DOC.
  240.  
  241. For greater detail, see the file MSKWFW.DOC.
  242.  
  243. = TROUBLESHOOTING MS-DOS KERMIT SERIAL PORT AND MODEM PROBLEMS
  244.  
  245.   "Why can't MS-DOS Kermit find my COM3 or COM4 port?"
  246.   "Why can Kermit send characters to my COM port, but not read them?"
  247.   "Why doesn't Kermit work with my internal modem?"
  248.  
  249. Rule out the obvious: Is everything connected and turned on?  Did you
  250. give a SET PORT command for the right device, and did you give it BEFORE any
  251. other device-related commands, such as SET SPEED and SET PARITY?  Remember,
  252. port-related settings apply to the port that was selected in the most recent
  253. SET PORT command, so a proper sequence might be:
  254.  
  255.   SET PORT COM2          ; First select the port
  256.   SET SPEED 19200     ; Then set its speed
  257.   SET PARITY EVEN     ; and other parameters for this port...
  258.   SET FLOW RTS/CTS
  259.   SET LOCAL-ECHO ON
  260.  
  261. Each of these parameters is remembered for each port, so switching ports (e.g.
  262. SET PORT COM1 after you have given the above sequence of commands) changes
  263. all these parameters to their previous (or default) values for the port you
  264. have switched to.  To see communication parameters for the current port:
  265.  
  266.   SHOW COMMUNICATIONS
  267.  
  268. Check them carefully to be sure they are what you intended.
  269.  
  270.   The following discussion is detailed and technical, but most of it boils
  271.   down to (a) telling Kermit two numbers, the port address and IRQ value; and
  272.   (b) fiddling with your modem.     Keep that in mind as you read more about PC
  273.   hardware than you ever wanted to know.
  274.  
  275. HOW A PHYSICAL COMMUNICATION PORT IS ASSOCIATED WITH A DOS COMn DEVICE
  276.  
  277. DOS PCs come with full support for two communication ports, COM1 and COM2, and
  278. with provisions for two more, COM3 and COM4.  COM3 and COM4 are not well (or
  279. consistently) supported in most types of PCs, as are COM1 and COM2 which
  280. rarely (by themselves) cause any problems.  This discussion considers only
  281. COM1-COM4, since higher-numbered COM ports are rare, and in any case not
  282. supported by MS-DOS Kermit.
  283.  
  284. The digit in the port name (like the "2" in COM2) is an index into an area in
  285. memory that contains the address of the serial port hardware.  The PC's Basic
  286. Input/Ouput System (BIOS) has four words starting at segment 40 (hexadecimal),
  287. word 0, for the addresses of the first four COM ports.  Word 0 is for COM1,
  288. word 2 (two bytes per word) for COM2, word 4 COM3, and word 6 COM4.  To view
  289. these addresses:
  290.  
  291.   C:\> debug         (start the debug program)
  292.   -d 40:0         (display segment 40)
  293.   -q             (quit the debug program)
  294.  
  295. ("C:\>" is the DOS prompt, "-" is the debug prompt.)  Here are the results
  296. on a PS/2 with 3 COM ports:
  297.  
  298.   0040:0000  F8 03 F8 02 20 32 00 00-BC 03 00 00 00 00 60 03  .... 2........`.
  299.              ^^^^^ ^^^^^ ^^^^^ ^^^^^
  300.              COM1  COM2  COM3  COM4
  301.  
  302. The first line (like the one above) contains the COM port information (ignore
  303. the other lines, as well as the characters on the right).  "F8 03" is the
  304. 2-byte COM1 address, expressed in hexadecimal (base 16) with the low byte
  305. first.  Thus the actual COM1 address is 03F8 hex, expressed in Kermit commands
  306. as \x3f8.  The COM2 address is 02F8, the COM3 address is 3220, and (since
  307. there is no COM4) the COM4 address is 0000.  That is how both DOS and the BIOS
  308. understand which ports are defined and where to find them.
  309.  
  310. When your PC is powered up, the BIOS startup code checks for serial port
  311. hardware (that is, a Universal Asynchronous Receiver/Transmitter, or UART) at
  312. the two port addresses 03F8 and 02F8.  If it finds a UART at the first address
  313. then that address is placed in word 40:0 and declared to be COM1.  Then the
  314. BIOS tries the second address and if successful this address goes into the
  315. first available word at that time, typically 40:2 as the address of COM2.
  316. Thus if you remove a COM1 device then a previously COM2 device will appear in
  317. the COM1 BIOS storage area as COM1 to DOS and Kermit.  What happens to the
  318. other two words depends on the PC model and BIOS.  The IBM PS/2 BIOS fills in
  319. all four words on startup, but most others handle only the first two because
  320. that's how IBM did it with the original PCs.
  321.  
  322.   So... just setting switches or jumpers on a serial port board or internal
  323.   modem does NOT necessarily define the board to be a particular COM port.
  324.  
  325. So why do some communication programs work with COM3 and COM4 without any
  326. special fiddling?  These programs ASSUME certain COM3 and COM4 addresses, even
  327. when there are no entries in the BIOS communication-port area.  Some of these
  328. programs show you their assumptions in a menu (and might allow you to change
  329. them), others do not.  The assumed values are usually as follows:
  330.  
  331.   Port     Assumed Address (hexadecimal)
  332.   COM1          03F8
  333.   COM2          02F8
  334.   COM3          03E8
  335.   COM4          02E8
  336.  
  337.   NOTE: PS/2s use different addresses for COM3 and COM4 -- 3220 and 3228,
  338.   respectively.  Well-behaved communication software (like Kermit) will use
  339.   these addresses rather than the defaults listed above.  Ill-behaved software
  340.   ignores the segment-40 addresses and erroneously attempt to use its own
  341.   values, right or wrong.
  342.  
  343. Unchecked use of an assumed port address is DANGEROUS if the device is not
  344. really where the software expects, especially if some other kind of device,
  345. say a network adapter, is at the given address.  It can also produce unwanted
  346. conflicts under Windows, OS/2, and DesqView, whose drivers often set the
  347. port's segment-40 word to 0 when they want to use the port exclusively and
  348. without interference, and then restore the real address when done, and similar
  349. unwanted interference with Int 14H redirectors that allow serial-port
  350. communication software to be used on network connections.
  351.  
  352. Unlike most other PC communication software, Kermit does NOT attempt to use a
  353. communications port unless:
  354.  
  355.   (a) It finds its address in the BIOS comm-port area, segment 40, or:
  356.   (b) You specify the address yourself.
  357.  
  358. AND:
  359.  
  360.   The device at the given address passes certain tests, in which registers
  361.   must contain certain values that are legitimate for a UART.
  362.  
  363. In other words, KERMIT IS MORE CAREFUL than most other communication software,
  364. because does not want to risk disrupting normal operation of your PC.
  365.  
  366. SPECIFYING THE PORT ADDRESS
  367.  
  368. If you tell MS-DOS Kermit to SET PORT COMn (where n is 1, 2, 3, or 4), and
  369. Kermit responds:
  370.  
  371.   Warning, no hardware for this serial port.
  372.   This port will be operated through the BIOS as BIOSn
  373.  
  374. it means that Kermit did not find an address for the port in the BIOS area or
  375. it did find one but the hardware at that address did not look like a UART.  If
  376. the cause of the message is a missing address, you can tell MS-DOS Kermit the
  377. address of the port by issuing the following command:
  378.  
  379.   SET COMn \xhhhh
  380.  
  381. where n is 1, 2, 3, or 4, and hhhh are four hexadecimal digits (0-9, A-F)
  382. representing the 16-bit address.  This command not only informs Kermit of the
  383. address, but also inserts the address into the BIOS so other programs can find
  384. the port (if they follow the rules), and so you don't have to give this
  385. command to Kermit again until after the next time you reboot.
  386.  
  387. After giving the SET COMn command, give a SET PORT COMn command for the same
  388. port, e.g.:
  389.  
  390.   set com3 \x3e8   ; FIRST specify the address of COM3 
  391.   set port com3       ; THEN select COM3
  392.  
  393. How do you know what addresses to give?     If have purchased an internal modem
  394. or an add-on serial port, the installation instructions should tell you.  The
  395. device must be configured -- generally by setting little switches or
  396. installing or removing jumpers.     You have to make sure that the address that
  397. you have chosen agrees with the address that Kermit will use.
  398.  
  399. Although it is not recommended that you guess at address values, sometimes it
  400. is the only way (as often with inherited equipment), for which occasions here
  401. is a list of the addresses commonly used for serial ports and internal modems:
  402.  
  403.   Port     Likely Addresses (hexadecimal)
  404.   COM1         03F8
  405.   COM2         02F8
  406.   COM3         03E8, 3220 (PS/2)
  407.   COM4         02E8, 3228 (PS/2), 02E0
  408.  
  409. You probably won't find a serial port at any address not listed above, but you
  410. might find a port at another port's expected address.  The use of these
  411. addresses in SET COMn commands should be relatively harmless (provided you
  412. don't also specify an interrupt, explained later); if there is no error
  413. message, Kermit found a possibly usable port. If there is an error message, no
  414. harm should have been done.
  415.  
  416. Now let's look at the other cause for the "This port will be operated through
  417. the BIOS" message, namely that an address was found in segment 40, but the
  418. device at that address does not appear to be a genuine serial port.
  419. Explanations might include:
  420.  
  421.  1. The device is at a different address.  Check your device's configuration
  422.     again, or else your SET COMn command.
  423.  
  424.  2. Your device is indeed at the given address, but its registers do not
  425.     contain values expected of a true PC serial port.  In that case, BIOS
  426.     operation is the only alternative.
  427.  
  428.  3. Your device is at the given address, but there is a conflict with another
  429.     device at that address or the machine's bus speed (not CPU speed) is set 
  430.     so high that the hardware test gave confusing results.
  431.  
  432. When Kermit operates a port through the BIOS, rather than directly, it will be
  433. MUCH slower and might not work at all because the BIOS requires the CD, CTS,
  434. and DSR modem signals to be asserted by the device connected to the port (and
  435. the CD signal is normally NOT asserted by a modem before it has made a
  436. connection to another modem).  In that case, you will have to configure the
  437. device (e.g. modem) to assert DSR, CTS, and CD always, or wire your modem
  438. cable to fake these signals (e.g. by connecting CD and DSR together).
  439.  
  440. Assuming you have found the right address for your COM3 or COM4 port (or
  441. nonstandard address for COM1 or COM2), and you want these addresses to be set
  442. correctly for Kermit at all times, even if it doesn't read its initialization
  443. file, you can put a command like the following in your AUTOEXEC.BAT file:
  444.  
  445.   set kermit=com3 \x3e8; com4 \x2e8;
  446.  
  447. INTERRUPTS
  448.  
  449.   "I can send characters to the modem, but I never see any on my screen."
  450.  
  451. This complaint (often arising from the user's observation of the modem lights
  452. and speaker), also known as "can-talk-but-not-listen syndrome", usually means
  453. that the communication device was found at the expected address, but Kermit's
  454. idea of its interrupt is wrong.     What's an interrupt?
  455.  
  456. To achieve high-speed communication without impacting other applications,
  457. Kermit reads characters from a serial device using "interrupts".  Whenever a
  458. character arrives at the serial device, the device sends a signal, called an
  459. interrupt, that can be "caught" by application software like Kermit, leaving
  460. the application free to do other work in the meantime without having to
  461. constantly look at the serial port to see if any characters have arrived (an
  462. operation called "polling", which is used by some other communications
  463. programs).  Communications programs that use polling are not sensitive to
  464. interrupts being set improperly and might therefore work with improperly-
  465. configured machines where Kermit will not (until you give it the required
  466. information), but they also tend to take over the entire computer.
  467.  
  468. In contrast to polling programs, Kermit is normally waiting for input from the
  469. keyboard, and is therefore idle if you are not typing and no characters are
  470. arriving at the communication port.  In multi-tasking environments such as
  471. Windows or OS/2, this allows other applications the largest possible share of
  472. the CPU while Kermit is running.
  473.  
  474. When a character arrives at the port, an interrupt signals Kermit to wake up
  475. from its keyboard-wait state and read the character from the port.  But Kermit
  476. needs a way of knowing which device the interrupt came from, so it will not
  477. erroneously read characters from the wrong one.  The device is identified by
  478. an Interrupt Request (IRQ) number, a small number like 3 or 4.  The BIOS does
  479. not record the IRQ number used by a serial port because the BIOS uses polling
  480. rather than interrupts.  The communications software has to know which IRQ to
  481. use.  By convention from the original IBM PC, COM1 uses IRQ 4 and COM2 uses
  482. IRQ 3.  There is no standard for COM3 and above, but certain conventions are
  483. normally followed:
  484.  
  485.   Port     PS/2  Others
  486.   COM3     IRQ3    IRQ4
  487.   COM4     IRQ3    IRQ3
  488.  
  489.   WARNING: Certain serial port cards and internal modems allow
  490.   themselves to be configured with different IRQ numbers (such as 9),
  491.   even on COM1 or COM2.     Check your device's installation instructions.
  492.  
  493. Some types of PCs (PS/2s, for example) allow sharing of IRQ numbers, provided
  494. each application has its own interrupt service routine and each such routine
  495. is built to "chain" interrupts properly (i.e. pass them along to other
  496. applications if they have arrived at the wrong place).  This works, for
  497. example, with Kermit on a PS/2; you can run two copies of Kermit under
  498. Windows, one using COM2/IRQ3 and the other using COM3/IRQ3 (i.e. two ports,
  499. same IRQ), both doing input and output simultaneously with no confusion.  But
  500. on most types of PCs, IRQs can NOT be shared, so each device must have a
  501. unique IRQ number. This caution applies especially when you have a serial
  502. mouse on IRQ 3 or 4.
  503.  
  504. Once Kermit knows the COM port's address, it tests to see which IRQ number, 3
  505. or 4, the device uses.  This is a safe test and doesn't cause any modem
  506. signaling or communication to take place.  The PC architecture has a limited
  507. range of IRQ numbers available, and so (usually) there can not be a unique IRQ
  508. number for each serial port when there are more than two, so in most cases no
  509. more than two serial ports can be active at once.
  510.  
  511. MS-DOS Kermit tests first for IRQ4, and then if there is no response, IRQ3.
  512. If both tests fail, a default value is used (on PS/2s, the default is IRQ4 for
  513. COM1 and IRQ3 for COM2-4; on others it is IRQ4 for COM1 and COM3, IRQ3 for
  514. COM2 and COM4).  No error message is given in this case, but
  515. "can-talk-but-not-listen syndrome" is a likely result.
  516.  
  517. Some add-on communication boards or internal modems are set up to use IRQ
  518. numbers other than 3 or 4 in order to avoid conflicts with COM1 or COM2 and/or
  519. to allow more than two COM ports to be active at once. But this can be
  520. dangerous -- for example, IRQ 5 (which is often used for this purpose) is also
  521. used by the hard disk controller on the PC/XT.  IRQ 7 is often used by network
  522. boards.  For this reason, Kermit does not automatically test any IRQ numbers
  523. other than 3 or 4, and does not use any other IRQ number by default.
  524.  
  525. But it is sometimes necessary, particularly on ISA (Industry Standard
  526. Architecture) bus machines (PC/ATs and compatibles) and earlier (such as PCs
  527. and XTs) to use an IRQ other than 3 or 4, for example when when an internal
  528. modem is installed as COM3 on IRQ4, and then use of COM1 prevents COM3 from
  529. working, and vice versa.  This problem can often be solved by reconfiguring
  530. the board to use an otherwise unused unique IRQ number.  Ideally this would be
  531. a normally free IRQ such as 10 or 11, but unfortunately most communication
  532. boards are not configurable for IRQs higher than 7.  Here is a brief, and
  533. definitely not comprehensive, guide to the low IRQ numbers (with IRQ numbers
  534. expressed in decimal):
  535.  
  536.      2    Normally available, but some video boards use it to obey an obsolete
  537.     standard for indicating vertical refresh.  Adjust video board jumpers
  538.     to not do this.     On 286's and above, IRQ 2 is also known as IRQ 9:
  539.     same IRQ, alternate number.  Windows 3.0 had difficulty with devices
  540.     using IRQ 2, but Windows 3.1 is better.
  541.  
  542.      3    Normally COM2 and COM4.     PS/2's use IRQ 3 for all serial ports above
  543.     COM1.  IRQ3 is also a favorite "factory default" of many local area
  544.     network (LAN) adapters.
  545.  
  546.      4    Normally COM1 and informally COM3 (except on PS/2s).
  547.  
  548.      5    Secondary parallel port.  Parallel ports are rarely interrupt-driven
  549.     (except for Novell RPRINTER users) so this wire becomes free if
  550.     you unjumper the IRQ on the parallel port board.  LAN adapters are
  551.     frequently placed on IRQ 5.  PC/XTs use IRQ 5 for the hard disk.  Be
  552.     careful with this one.
  553.  
  554.      6    Floppy disk drives. Leave it alone!
  555.  
  556.      7    Primary parallel port.    Remove as described for IRQ 5.    Be careful,
  557.     LAN adapters are frequently placed here.
  558.  
  559. NOTE: IRQs higher than 7 are not available on original PCs or PC/XTs.
  560.  
  561.      9    Alias for IRQ 2 on PC/AT and above.  Don't try to use this one
  562.         as if it were a unique IRQ.
  563.  
  564.     10    Usually free.
  565.  
  566.     11    Usually free.
  567.  
  568.     12    Used by the IBM bus mouse, otherwise usually free.
  569.  
  570.     13    Math coprocessor errors are trapped here, otherwise frequently free.
  571.  
  572.     14    Used by hard disk on 286 and above.  Leave alone!
  573.  
  574.     15    Some SCSI controllers use this.     Usually free.
  575.     
  576. If your communication board uses an IRQ other than 3 or 4, you will experience
  577. the "can talk but not listen" syndrome when using Kermit.  To fix it, simply
  578. inform Kermit of the device's IRQ number.  This is done in the SET COMn
  579. command, after the address:
  580.  
  581.   SET COMn <address> <irq>
  582.  
  583. for example:
  584.  
  585.   SET COM3 \x03e8 5
  586.  
  587. When you include a number (like 3, 4, 5, 6, or 7) after the port address
  588. (separated by a space), Kermit skips its IRQ test and uses the IRQ number you
  589. specified the next time you give a SET PORT command for that port.
  590.  
  591.   AVOID address and IRQ conflicts; these items MUST NOT overlap existing
  592.   equipment. SERIOUS DAMAGE can result if, for example, the IRQ number you
  593.   give is the same as the one used by your disk controller or network
  594.   adapter.  Incorrect operation can result if the interrupt is in use by a
  595.   less critical device, such as a mouse.
  596.  
  597. It is necessary to specify the IRQ number in either of these two situations:
  598.  
  599.   1. The communication device uses an IRQ number other than 3 or 4.
  600.  
  601.   2. Kermit's IRQ test interferes with Windows or a similar environment.
  602.  
  603. Check your PC's configuration carefully before specifying an IRQ number.
  604. Before starting Kermit, you can use certain public domain or commercial
  605. utilities, such as MAPMEM, Northgate QAPLUS, Quarterdeck MFT, or the MSD
  606. utility shipped with Windows 3.1 to get an idea of which IRQ numbers are
  607. already in use (these utilities are, of course, not foolproof -- for example,
  608. they can't tell what IRQs are used by programs that are not presently loaded).
  609. (NOTE: Run these programs under DOS, not Windows, if possible, since Windows
  610. tends to hide the true nature of your PC's serial port structure.)
  611.  
  612. If, even after establishing the device's interrupt, Kermit still fails to
  613. operate correctly (or reliably), check to see whether:
  614.  
  615.   1. Some other device (such as a mouse or LAN adapter) is generating the 
  616.      same interrupt.
  617.  
  618.   2. Some other software (such as a mouse or video driver) is catching the 
  619.      same interrupt.
  620.  
  621. If you find a conflict, you'll have to resolve it: remove the offending device
  622. driver or TSR from your CONFIG.SYS or AUTOEXEC.BAT file or turn it off
  623. temporarily (e.g. with the MOUSE OFF command for certain mouse drivers); or,
  624. if possible, reconfigure one of the conflicting devices to use a different
  625. interrupt.
  626.  
  627. Example: A PC (not PS/2) is delivered with a serial mouse on COM1 and with
  628. COM2 as a free serial port.  COM2 can be used with an external modem, but you
  629. can't put an internal modem on COM3 because its IRQ conflicts with the mouse
  630. and the COM4 address clashes with an 8514/A video adapter (such as the ATI
  631. Ultra+).  Neither the mouse interrupt nor the video board address can be
  632. changed.  So to install an internal modem, you must remove the serial mouse
  633. and driver and, if you need a mouse, replace it with a bus mouse.
  634.  
  635. PROBLEMS WITH MODEMS
  636.  
  637.   "I just bought and installed an XYZ-Turbo V-Dot-Everything internal
  638.    data/fax modem, and I can't make it work!"
  639.  
  640. This has long been a common complaint about internal modems.  The same
  641. complaint is also now being heard with alarming frequency about some of the
  642. newer external modems.  With internal modems, particularly when they are
  643. installed on COM3 or COM4, the most common problems are:
  644.  
  645.  1. Kermit doesn't know the modem's address, or the device is using an IRQ
  646.     number other than 3 or 4.  These problems can be fixed by giving the
  647.     appropriate SET COMn command to Kermit and/or clearing up any interrupt
  648.     conflicts among your PC's devices.
  649.  
  650.  2. The internal modem is installed incorrectly, with an address or IRQ that
  651.     conflicts with one already in use on your PC.
  652.  
  653.  3. The internal modem does not correctly emulate a real IBM PC serial port,
  654.     and therefore fails Kermit's hardware test, and therefore can only be
  655.     used through the BIOS.
  656.  
  657.  4. The device is in a laptop, notebook, or palmtop computer, and power to 
  658.     the internal modem or serial port has been disabled in the CMOS setup,
  659.     or has been turned off automatically when the cover is closed or the
  660.     machine shut down.
  661.  
  662. In mid-1992, a new generation of low-cost, high-speed modems, both internal
  663. and external, began to appear on the market.  These modems typically offer a
  664. wide range of features: V.32 and V.32bis modulation, V.42 and MNP error
  665. correction, V.42bis and MNP data compression, etc.  Unfortunately, many of
  666. these modems suffer from bugs not found in earlier modems.  The problems are
  667. generally related to initialization of the modem and interaction with its
  668. command processor.  Some common complaints:
  669.  
  670.  1. "The modem won't dial or respond to commands".  Or the modem ignores
  671.     commands when Kermit's PARITY is set to a particular value, like EVEN.  Or
  672.     commands are not processed correctly above a certain interface speed.
  673.  
  674.  2. "I can dial successfully, and in general send characters to and through
  675.     the modem, but I never get any characters back."  This looks suspiciously
  676.     like the "talk-but-not-listen" problem, but in some cases it is a bug in,
  677.     or a configuration problem with, the modem, having nothing to do with
  678.     Kermit: the modem is simply not sending any characters to the PC.
  679.  
  680.  3. "After using the modem with <name-omitted> communication software, it
  681.     also works with Kermit, but it won't work with Kermit unless I run
  682.     <name-omitted> first."
  683.  
  684.  4. "I can communicate in command-mode with the modem, up until I give it
  685.     an ATZ command, at which point it seems to die."
  686.  
  687.  5. The modem does not pass the BREAK signal.
  688.  
  689.  6. The DSR signal goes off after successful dialing.
  690.  
  691. And so on.  All of these are modem, not Kermit, problems.  Some suggestions
  692. for overcoming them:
  693.  
  694.  1. Before giving a DIAL command, which invokes a macro containing OUTPUT
  695.     commands for the modem's command processor, give the command:
  696.  
  697.     SET OUTPUT PACING <milliseconds>
  698.  
  699.     For example:
  700.  
  701.     SET OUTPUT PACING 100
  702.     OUTPUT AT Q0 E1 V1 &F\13
  703.  
  704.  2. External modems only: Check that your modem cable has wires for (at least)
  705.     the TD, RD, SG, CTS, RTS, DSR, CD, and DTR RS-232 signals.    If it does
  706.     not, replace the cable with a real modem cable, or (temporarily) configure
  707.     your modem to compensate for the missing signals.
  708.  
  709.  3. Read your modem manual and check your modem's configuration.  Perhaps its
  710.     interface speed is locked to a different speed than the one Kermit is
  711.     using.  Perhaps Kermit is set to use RTS/CTS flow control, but the modem
  712.     is not asserting CTS.  Also, check its factory and/or saved settings, and
  713.     under what conditions they are restored (for example, are they restored
  714.     when the PC drops DTR?).  How are you selecting saved settings -- read
  715.     your modem manual about (e.g.) the difference between AT&F and AT&F2.  Be
  716.     aware that the AT&Fn commands might not restore all S-registers, so double
  717.     check them.  Be particularly sensitive to the registers that control
  718.     interface speed, modulation technique, error correction, data compression,
  719.     negotiation, and fallback, and note that each modem maker probably uses
  720.     different registers and commands to control each of these features.
  721.  
  722.  4. Try the following sequence to initialize the port (using COM3 in this
  723.     example):
  724.  
  725.     SET COM3 <address> <irq>    ; (if necessary)
  726.     SET PORT 3            ; Select port 3
  727.     HANGUP                ; Drop DTR on port 3
  728.     SET PORT 3            ; Re-initialize port 3
  729.  
  730.  5. SET PARITY NONE before giving a DIAL command or directly talking to the
  731.     modem's command processor, and then SET PARITY to whatever the remote host
  732.     or service requires after making the connection.  (NOTE: MS-DOS Kermit
  733.     might set its parity to some other value automatically as a result of
  734.     automatic parity detection during file transfer.)
  735.  
  736.  6. Ensure your PC bus speed is 8MHz.  Some PCs (not PS/2s) come with a BIOS
  737.     SETUP facility that lets you change the PC's bus speed, memory wait
  738.     states, etc.  In general, it is dangerous to deviate from the defaults,
  739.     particularly from the 8MHz bus speed, a standard for add-on devices; it
  740.     might be required by your communication board or internal modem.
  741.  
  742.  7. To avoid negotiation and fallback problems between the two modems, set
  743.     your modem for features that you know the answering modem will support:
  744.     the particular type of modulation, error correction, compression.  NOTE:
  745.     connection problems between the two modems have nothing to do with Kermit
  746.     and are beyond the scope of this document.  If a modem appears to dial
  747.     correctly, gets connection tones, and then hangs up, it is a problem
  748.     between the two modems (involving one or both modems and/or the phone
  749.     company), and indicates a modem configuration problem, a bug, or a basic
  750.     incompatibility between the calling and answering modems.
  751.  
  752.  8. The ATZ problem.  This is a bug in your modem.  If the modem doesn't work
  753.     after an ATZ command, HANGUP and the SET LINE again.  If that doesn't do
  754.     it, power the modem off and on.  If that doesn't work, power the PC off
  755.     and on.
  756.  
  757.  9. If the modem doesn't pass the BREAK signal, but you want it to, read your
  758.     modem manual about how to configure it appropriately.  If your modem can't
  759.     be configured to pass the BREAK signal, but it does correctly implement a
  760.     command for sending BREAK, such as AT\B9, define an MS-DOS Kermit macro,
  761.     SBREAK, to send a BREAK as follows:
  762.  
  763.       define sbreak pause 1, output +++, pause 1, output ATB\{92}9\13, -
  764.     pause 1, output ATO\13, connect
  765.     
  766.     and assign it to the key of your choice, for example F1:
  767.  
  768.       set key \315 {\Ksbreak}
  769.  
  770. 10. Call your modem maker's technical support number.  Ask if they have
  771.     replacement chips to fix bugs in your modem.
  772.  
  773. = DISK INTERRUPT CONFLICTS
  774.  
  775. On certain PCs, Kermit file transfers (or terminal sessions that are being
  776. logged to disk) through serial communication devices (COM1 thru 4) can suffer
  777. from data loss during disk read/write operations.  This is apparently because,
  778. on these PCs, the entire interrupt mechanism is TURNED OFF during disk reads
  779. or writes.  Thus, while the disk driver is active, no interrupts are generated
  780. by incoming characters, and therefore they are likely to be lost (particularly
  781. if the UART does not have its own buffer).
  782.  
  783. If you experience data loss during uploads (watch the "Retries" counter), try
  784. sending the same file from a RAM disk; if the retries go away, your PC has
  785. this problem.  If downloads to disk have lots of retries, try downloading the
  786. same file to the NUL device (tell MS-DOS Kermit to RECEIVE NUL); same deal.
  787.  
  788. On some PC's, it has been observed that the disk-interrupt conflict occurs
  789. when using a certain COM port, but not a different one.  For example, on a
  790. PS/2 Model 70 A20, conflicts occur on COM2 but not COM1.
  791.  
  792. = MS-DOS 5.0 AND 6.x
  793.  
  794. You should not use MS-DOS Kermit (or other communications software) under
  795. DOSSHELL.  Unlike Windows, DesqView, OS/2, etc, DOSSHELL is NOT a multitasking
  796. environment.
  797.  
  798. = MICROSOFT WINDOWS, DESQVIEW, OS/2, WINDOWS NT, ETC.
  799.  
  800. Although MS-DOS Kermit can work in these environments, and even takes advantage
  801. of many of their features, it does not have a "graphical user interface".  You
  802. still have to type commands to the MS-Kermit> prompt or execute them from
  803. command files with the TAKE command.
  804.  
  805. OS/2 1.x...
  806.  
  807. NOTE: The recommended communications software for OS/2 (any version) is
  808. C-Kermit 5A(188) or later, which is a native OS/2 application.
  809.  
  810. Under OS/2 1.3 and earlier, MS-DOS Kermit only runs in full-screen mode.
  811. Under 1.x of OS/2, the serial port must first be conditioned by the command:
  812.  
  813.   SETCOM40 COM1=ON
  814.  
  815. OS/2 2.0 and 2.1...
  816.  
  817. MS-DOS Kermit can run in a window of OS/2 2.x and, of course, also in a full
  818. screen.  Kermit's flow control has no effect because OS/2 itself is
  819. controlling the device.  You can configure OS/2 to handle flow control itself
  820. by adding a command like the following to your STARTUP.CMD file:
  821.  
  822.     MODE COM1 XON=ON          (for XON/XOFF software flow control) 
  823. or:
  824.     MODE COM1 RTS=HS OCTS=ON  (for RTS/CTS hardware flow control)
  825.  
  826. If your PC's communication port is a 16550A[FN] UART serial communication
  827. adapter (as is standard on the PS/2), it has a built-in buffer to improve
  828. performance.  To enable use of the 16550's buffering capability, add BUFFER=ON
  829. to your MODE command:
  830.  
  831.     MODE COM1 XON=ON BUFFER=ON           (for XON/XOFF software flow control) 
  832. or:
  833.     MODE COM1 RTS=HS OCTS=ON BUFFER=ON (for RTS/CTS hardware flow control)
  834.  
  835. If you don't have a buffered UART, MS-DOS Kermit (and most likely any other
  836. communications software) will lose characters galore at high transmission
  837. speeds.
  838.  
  839. IDLE_SENSITIVITY should be set to 0 and IDLE_DETECTION_TIME should be 100 to
  840. reduce the jerkiness of DOS sessions.
  841.  
  842. Reportedly, MS-DOS Kermit runs quite well under OS/2 (in a DOS window, or
  843. fullscreen) if you load the shareware SIO.SYS or VSIO.SYS driver in place of
  844. OS/2's regular serial port driver.  If you do not have a buffered UART, tell
  845. SIO.SYS to simulate one, e.g. "(COM1,3F8,IRQ4,,F)".
  846.  
  847. You can make TCP/IP connections with MS-DOS Kermit from within OS/2 as long
  848. as you do not have any other network software loaded; that is, if MS-DOS
  849. Kermit has exclusive access to the network board.
  850.  
  851.  
  852. MICROSOFT WINDOWS...
  853.  
  854. MS-DOS Kermit operates under Microsoft Windows 3.0 and 3.1 in fullscreen mode
  855. on all machines, and in a window on 386-class or higher machines that have
  856. enough memory for Windows to operate in Enhanced Mode (3-4 megabytes are
  857. required).  Be sure to install the KERMIT.PIF file so Windows can can set
  858. things up correctly for Kermit operation.  See the instructions in MSKERM.HLP.
  859.  
  860. Under Windows 3.x Real or Standard mode, you can use still use MS-DOS Kermit
  861. as a full-screen DOS application.  Kermit works in a window on all PCs (if
  862. they have enough memory) under Windows 2.0.
  863.  
  864. Memory-management setups accomplished under DOS (e.g. by EMM386) in CONFIG.SYS
  865. are undone by Windows.  If successful operation of Kermit or other
  866. applications depends on some special memory configuration (such as eXclude=
  867. and frame= clauses to protect portions of video memory, etc), you must
  868. duplicate this configuration in the [Enhanced] section of the Windows
  869. SYSTEM.INI file.  Note that segments A000 and B000 remain owned by the video
  870. display system and not by memory managers.
  871.  
  872. The use of COM3 and COM4 under Windows is problematic, but most users report
  873. success after finding the right "SET COMx <address> <irq>" command.
  874.  
  875. When running Kermit in two windows at once, one on COM1, one on COM2, Windows
  876. complains that both applications want to access COM1.  To make sure that COM1's
  877. IRQ 4 is not touched when starting COM2 (part of the "find the IRQ" test),
  878. specify the COM2 port parameters explicitly as SET COM2 \x2f8 3 (standard port
  879. address and IRQ for COM2) to make Kermit skip the test.
  880.  
  881. Similarly, if you have a serial mouse on COM1, and you want Kermit to use (for
  882. example) COM2 for communication, add the following to your MSCUSTOM.INI
  883. file to prevent Kermit from touching COM1 and interfering with your mouse:
  884.  
  885.   SET COM2 \x2f8 3 ; (substitute appropriate values)
  886.   SET PORT COM2
  887.  
  888. Kermit's performance under Windows depends on the BIOS, the machine
  889. architecture, the serial port hardware, which drivers and TSRs are loaded, the
  890. system load, and Windows settings.  A 16550A UART is particularly important
  891. under Windows, as is an effective flow control method. For further tuning,
  892. look at the Windows files SYSIN*.TXT for information about SYSTEM.INI settings
  893. related to communication ports, particularly COMxBuffer and COMBoostTime.
  894.  
  895. When running MS-DOS Kermit under Windows, specifying a ",P" at the end of a
  896. serial port setting in WIN.INI or in a MODE command can cause loss of
  897. characters from the serial port.  Remove the ",P" from the setting.
  898.  
  899. TCP/IP connections over packet drivers under Windows require the WINPKT shim.
  900. TCP/IP connections over ODI under Windows require a packet-driver simulation
  901. shim and also the WINPKT shim.  Or, instead of using WINPKT, you can lock
  902. Kermit into memory.  See KERMIT.HLP for instructions on using Kermit's TCP/IP
  903. support under Windows.
  904.  
  905. DESQVIEW and DESQVIEW/X ...
  906.  
  907. Users of DESQview set "Optimize Communications" in the Advanced menu to "No".
  908.  
  909. DESQview/X reportedly requires that the serial port be configured to
  910. "optimize" to prevent Kermit from losing characters.  Network connections
  911. (TCP/IP over a packet driver or ODI) within an X window of DESQview/X
  912. apparently do not work.
  913.  
  914. WINDOWS NT ...
  915.  
  916. If you have performance problems with MS-DOS Kermit under Windows NT:
  917.  
  918. You really need at least 20 MB of memory to run Windows NT, and particularly
  919. to run communications software under Windows NT.
  920.  
  921. The last service update has a bug in the serial driver.  You should back out
  922. of it if WINVER shows your NT version as Build 528, Service Pack 2.
  923.  
  924. Check the Event Viewer for errors in the System Log, or use WINMSD to check
  925. for IRQ conflicts.
  926.  
  927. Modifying system parameters...  Most parameters are kept in the NT Registry,
  928. although a tiny handful of NT programs (like CLOCK) use .INI files.  The
  929. Registry is poorly documented, but you can get the NT Resource Kit Tools by
  930. anonymous ftp from ftp.microsoft.com (an NT system, FYI),
  931. /Advsys/winnt/sup-ed/reskit/i386/RESKIT.EXE (for Intel systems), a
  932. self-extracting archive has a fairly complete description of the registry
  933. fields and what they mean.  WARNING!  You can render a system unbootable with
  934. the registry editor.  To run the registry editor, type START REGEDT32 at a
  935. console prompt.
  936.  
  937.  
  938. = VIDEO PROBLEMS
  939.  
  940. Never use segments A000 or B000 for memory mapping.  These belong to the
  941. video adapter.
  942.  
  943. Kermit does not mix well with NNANSI.SYS, a public domain (or shareware?)
  944. console driver that replaces ANSI.SYS, and which implements "hardware
  945. scrolling", a case of two non-cooperating programs directly manipulating
  946. the video adapter at the same time!  Similar comments apply to other console
  947. drivers that access the screen directly, including ANSI.COM (from PC Magazine,
  948. circa 1988).
  949.  
  950. To turn off NNANSI.SYS's direct screen access, put the following commands in
  951. your MSCUSTOM.INI file:
  952.  
  953.   echo \27[=98l                  ; Reset "fast mode"
  954.   define on_exit echo \27[=98h   ; Set "fast mode"
  955.  
  956. = SERIAL COMMUNICATIONS
  957.  
  958. Certain kinds of PCs with internal modems will hang up their phone connections
  959. if you give MS-DOS Kermit a SET FLOW or SET PARITY command; this has been
  960. reported for a DECpc 425SL laptop, and an unnamed desktop with an Intel
  961. internal modem.   MS-DOS Kermit 3.14 will include a workaround for this
  962. problem.  In the meantime, avoid giving SET FLOW or SET PARITY commands on
  963. these systems when there is an active connection through the modem.
  964.  
  965. ANSI.COM, mentioned above in connection with video problems, also interferes
  966. with serial communications.  Solution: unload it, use ANSI.SYS instead.
  967.  
  968. On PCs with high-quality buffered UARTs, Kermit can be used at speeds up to
  969. 57600 bps under DOS (under Windows or DesqView, the maximum speed is probably
  970. lower).     115200 bps works only with a very short shielded cable, and the async
  971. adapters of the two machines in perfect tune.  Some VAX serial port interfaces
  972. are out of tolerance at 19,200 bps and faster.    Some of the new high-speed PCs
  973. (486s like, for example, the IBM PS/VP or the Gateway 2000) come with
  974. unbuffered UARTs.  Despite the speed of the CPUs, these new machines perform
  975. serial communications less reliably than older machines that run at 1/4 the
  976. speed or less, but that have buffered UARTs (like the PS/2-70).
  977.  
  978. MS-DOS Kermit will tell you whether you have a buffered UART:
  979.  
  980.   SET PORT 2
  981.   SHOW COMMUNICATIONS
  982.   ...
  983.   COM1 Address: Port \xf38, IRQ 4, 16550A UART FIFO
  984.  
  985. 16550A UART means you have the good kind, FIFO means it has a "First-In
  986. First-Out" buffer.  If Kermit does not say you have a 1655A UART FIFO, and you
  987. are suffering from performance or data loss problems, replace it (if
  988. possible!)  with a 16550A.
  989.  
  990. SHOW COMMUNICATIONS might incorrectly display the UART type after you switch
  991. ports (e.g. from COM1 to COM2).  After using the new port (e.g. in CONNECT
  992. mode), the display will be correct again.
  993.  
  994. If your speed is set too high, the symptom might be lost or garbled characters
  995. or graphics images on the screen, or data-overrun beeps.  Normally flow control
  996. prevents these problems so use it if you can.  Printing while in CONNECT mode
  997. needs flow control to be active.
  998.  
  999. Even with flow control, however, there can be no guarantee that incoming
  1000. characters will not be lost at high communication speeds on very slow PCs,
  1001. such as original 4.77MHz PCs or PC/XTs.  In such cases, the only recourse is
  1002. to use a slower communication speed.
  1003.  
  1004. MS-DOS Kermit does not monitor the communication line for carrier loss during
  1005. terminal emulation or file transfer.  You can SHOW MODEM or SHOW COMMUNICATIONS
  1006. to inquire about CD, DSR, and CTS.  The script command WAIT permits sensing
  1007. carrier presence in a script program.
  1008.  
  1009. The SHOW MODEM and WAIT commands work right only if your modem or other
  1010. communication device is configured to raise and lower the DSR, CTS, and CD
  1011. signals appropriately, and the cable that connects your PC to the modem passes
  1012. these signals through.    For some modems, the factory setting is to always keep
  1013. CD on, even if there is no connection.    Consult your modem manual.
  1014.  
  1015. For serial devices, the HANGUP command (and Ctrl-]H in CONNECT mode) works
  1016. only if the cable that connects your PC to the communication device passes the
  1017. DTR signal through, and if the communication device itself is configured to
  1018. hang up or otherwise terminate the connection when the DTR signal is lowered
  1019. by the PC.  For some modems, the factory setting is to ignore DTR transitions.
  1020. Consult your modem manual (for example, tell a Hayes modem to "AT&D2").     NOTE:
  1021. in version 3.11, the HANGUP command turned off DTR for about 1/2 second and
  1022. then turned it back on again.  In version 3.12 and later, the HANGUP command
  1023. turns off DTR until the next time you issue a command that accesses the serial
  1024. port.  If you can't make the HANGUP command work, define a macro to send a
  1025. hangup command to the modem, for example (for Hayes modems):
  1026.  
  1027.   DEFINE MYHANGUP PAUSE 1, OUTPUT +++, PAUSE 1, OUTPUT ATH0\13
  1028.  
  1029. and then use this macro in place of the regular HANGUP command.  You can also
  1030. assign this macro to a "hot key", for example:
  1031.  
  1032.   SET KEY \2339 {\Kmyhangup} ; Assign MYHANGUP to Alt-h.
  1033.  
  1034. = TERMINAL EMULATION
  1035.  
  1036. Kermit's VT320/340 emulator lacks the following features:
  1037.  
  1038.  . Smooth scroll
  1039.  . Downloadable soft fonts
  1040.  . ReGis graphics (VT340/330)
  1041.  . Dual sessions in split screens (VT340/330)
  1042.  . Local screen editing and block transmission (for security reasons)
  1043.  . True double height/width characters (these are simulated)
  1044.  . Selective erasure (as a character attribute, a formatted screen item)
  1045.  . Some of the exotic and rarely-used features of the DEC VT340/330 series:
  1046.    formatted screen and graphics operations highly specialized to DEC hardware.
  1047.  
  1048. MS-DOS Kermit does not include "ANSI" or "PCTERM" emulation.  If you need
  1049. this, as when logging in to a PC-based BBS, tell MS-DOS Kermit to:
  1050.  
  1051.   SET TERMINAL TYPE VT320  ; This is the default, or use VT100.
  1052.   SET PARITY NONE          ; This is the default
  1053.   SET TERMINAL BYTESIZE 8
  1054.   SET TERMINAL CHARACTER-SET TRANSPARENT
  1055.  
  1056. and make sure your PC's code page agrees with what the BBS thinks it is,
  1057. otherwise box-drawing characters might come out looking like accented
  1058. letters.  If that doesn't work, then use your ANSI console driver instead of
  1059. Kermit's built-in VT terminal emulation: make sure you have the ANSI.SYS (part
  1060. of DOS) console driver loaded in your CONFIG.SYS, and SET TERMINAL TYPE NONE
  1061. (rather than VT320); note that when your terminal type is NONE, the mode line,
  1062. screen rollback, similar features are not available.
  1063.  
  1064. Hint: You can get a nice border around your terminal emulation screen if you
  1065. have Norton Utilities: "sa black on green", for example (either before
  1066. starting Kermit, or "run sa black on green" at the Kermit prompt) will give
  1067. you a restful green border, independent of Kermit's SET TERMINAL COLORation.
  1068.  
  1069. On certain national keyboards, like the German one, Kermit's normal escape
  1070. character, Ctrl-] (Control-Rightbracket) does not seem to work.  This is
  1071. because certain control characters are typed differently on these keyboards.
  1072. On the German keyboard, Ctrl-] is produced by holding down the Ctrl (Strg) key
  1073. and pressing the + (plus) key.  MS-DOS Kermit has no way of knowing this, and
  1074. continues to display the escape character as "^]" in the mode-line help text.
  1075.  
  1076. Kermit does not work with certain Swedish keyboard drivers because of a bug in
  1077. the keyboard driver.  Workaround: use a different keyboard driver.  Reportedy
  1078. there are several different Swedish keyboard drivers available.
  1079.  
  1080. Do not attempt to plug an "enhanced" (101) keyboard into a PC/XT or earlier.
  1081. The BIOS on early PCs does not support the newer keyboards, even if you
  1082. install the corresponding keyboard driver.
  1083.  
  1084. If VAX/VMS thinks you have a VT220 or VT320, it sends 8-bit control sequences.
  1085. Kermit does not understand them unless you SET TERMINAL BYTESIZE 8.  The
  1086. symptom is the appearance of fragments of escape sequences on the screen and
  1087. wrong cursor positioning, and possibly fractured tab settings, particularly
  1088. during EVE sessions.  You can prevent VMS from sending 8-bit control sequences
  1089. (if you really do not have an 8-bit connection) by giving the VMS command SET
  1090. TERMINAL /NOEIGHT.  For VAX/VMS, you should also use Xon/Xoff flow control in
  1091. both directions (SET TERM /TTSYNC /HOSTSYNC on VMS).
  1092.  
  1093. Reportedly (details not available, unverified), the EVE (or EDT/TPU) VMS-based
  1094. text editor requires not only the SET TERM BYTE 8 and SET TERM CONTROLS 8
  1095. settings in MS-DOS Kermit, but also the following commands to be issued to
  1096. the VMS DCL prompt (other EVE users indicate these commands are not needed,
  1097. and ESC Z (i.e. SET TERM/INQUIRE) takes care of everything):
  1098.  
  1099.   $ SET TERMINAL /DEV=VT300
  1100.   $ SET TERMINAL /NODEC_CRT2
  1101.   $ SET TERMINAL /DEC_CRT
  1102.  
  1103. In VT100/200/300 emulation on the IBM PC family, receipt of ESC [ 4 m (turn on
  1104. underscore) results in a color change rather than underscore on IBM CGA, EGA
  1105. and other color displays.  IBM color display adapters have one less attribute
  1106. than DEC terminals, and in addition the two systems intensify dots differently
  1107. (IBM does foreground/character dots only, whereas DEC can intensify any
  1108. dot).  The color chosen for underscore simulation is derived from the normal
  1109. fore- and background colors in a way that ensures it is different from both.
  1110. There is presently no way for the user to choose the color used for underscore
  1111. simulation.
  1112.  
  1113. Receipt of ESC [ 0 m does not affect the fore- and background colors, in
  1114. compliance with the definition of this function for real DEC VT terminals.
  1115. Fore- and background colors can only be changed by the host, by sending
  1116. explicit ESC [ 3x/4x m escape sequences, by issuing a SET TERMINAL COLOR
  1117. command to Kermit.
  1118.  
  1119. SET TERMINAL COLOR 1 [3xx 4xx] (used to make the foreground color bright), if
  1120. issued when SET TERMINAL SCREEN REVERSE is in effect, reverts to normal video.
  1121.  
  1122. Similary, if SET TERMINAL COLOR 1 is in effect, the effects of the host-
  1123. generated escape sequences CSI 1 m and CSI 0 m are reversed.
  1124.  
  1125. If certain incomplete escape sequences (e.g. Operating System Command) are
  1126. received during terminal emulation, Kermit can hang waiting for the string
  1127. terminator that never comes, usually because of noise on the communication
  1128. line.  Reset the terminal emulator by pressing Alt-= (Alt-equals), the default
  1129. key for \Kreset.
  1130.  
  1131. Kermit assumes 25 screen lines but can adapt to other lengths if it knows how
  1132. to get this information from the video adapter.  The number of lines is
  1133. usually available from DOS as the "video mode".  Unfortunately, different
  1134. video adapters have different video modes, or use the same mode numbers to
  1135. mean different things, and use different methods to set the mode (typically
  1136. some kind of DOS MODE or VMODE "LINES=" command, the "printing" of certain
  1137. escape sequences to be intercepted by the console driver, etc).  In any case,
  1138. Kermit tries its best to use the screen dimensions discovered upon startup,
  1139. but if Kermit subsequently enters 132-column or graphics mode, it typically
  1140. returns to an 80x25 screen because it can't know how the original nonstandard
  1141. geometry was established in the first place.
  1142.  
  1143. To get properly formatted screens during terminal emulation, be sure to inform
  1144. the remote host of your screen width and length.  On some UNIX systems, this
  1145. can be done by:
  1146.  
  1147.   `eval resize`
  1148.  
  1149. which asks the terminal for its dimensions (Kermit responds correctly) and
  1150. puts these values in your UNIX environment.  As of version 3.14, Kermit will,
  1151. on TCP/IP TELNET connections, engage automatically in NAWS (Negotiate About
  1152. Window Size) protocol with the TELNET server, if the TELNET server supports
  1153. this, which will inform the remote host of your screen size automatically.
  1154.  
  1155. So that key translation and macros can work on both IBM and non-IBM compatible
  1156. PCs, Kermit uses the system BIOS to obtain key scan codes.  But the IBM BIOS
  1157. does not produce scan codes at all for certain keys, and may produce duplicate
  1158. scan codes for others.    Num Lock, Print Screen, Scroll Lock, and Pause are
  1159. examples.
  1160.  
  1161. Although MS-DOS Kermit has verbs for DEC function keys (\KdecF6-F20) and it
  1162. also supports the DEC User-Defined Key (UDK) feature, it does not support both
  1163. of these simultaneously.  If the host sends a UDK-defining sequence for a
  1164. given function key, it will overwrite the normal definition of that key.  This
  1165. behavior differs from a real DEC terminal, which preserves the normal F-key
  1166. function, and assigns the user-defined value to the shifted version of the
  1167. function key.  Workaround: Use the \KdecF6-20 verbs for UDKs but *not* for
  1168. DEC F-keys.  Since the values sent by DEC F-keys are constant, assign these
  1169. values, rather than the corresponding verbs, to the desired keys.  The values
  1170. are listed in "Using MS-DOS Kermit", Table II-5, page 294.  Example:
  1171.  
  1172.   set key \2413 \27[17~  ; Assign DEC F6 value to PC Alt-F6
  1173.   set key \857 \KdecF6   ; Assign DEC Shift-F6 (UDK) to PC Shift-F6
  1174.  
  1175. When you PUSH to DOS (including when you use Kermit's RUN command), and you
  1176. have XON/XOFF flow control enabled, Kermit sends an XOFF (Ctrl-S) to the host
  1177. when you leave, and XON (Ctrl-Q) when you return (if you have RTS/CTS flow
  1178. control enabled, Kermit turns off RTS).     This prevents data transmitted by the
  1179. host from being lost.  However, if you are using Xon/Xoff and you do this
  1180. while using the EMACS text editor on the host, the Ctrl-S will be interpreted
  1181. as a Search command, and the Ctrl-Q as a Quote command.     When you return to
  1182. EMACS, type several Ctrl-G's to get back to normal.
  1183.  
  1184. Similar comments about sending Xoff and Xon apply when Kermit is commanded
  1185. to change its screen size between 80 and 132 columns.
  1186.  
  1187. Session logging can be turned on using the LOG SESSION command, and it can
  1188. be toggled on and off during terminal emulation by using whatever keys are
  1189. associated with the verbs \Klogoff and \Klogon.     One user stated the
  1190. requirement to enable a session log, but to have it initially turned off.
  1191. This can be done as follows (using the F1 and F2 keys as examples):
  1192.  
  1193.   SET KEY \315 {\Kloginit}  ; F1 to turn on log
  1194.   SET KEY \316 \klogoff        ; F2 to turn log off
  1195.   DEFINE loginit log session, set key \315 \klogon, define loginit, connect
  1196.  
  1197. To log your session to a printer, add the word PRN after "log session" in
  1198. the third line above.
  1199.  
  1200. The session log is written to disk by DOS.  The frequency with which DOS
  1201. updates this file is governed by the BUFFERS= line in your CONFIG.SYS file (see
  1202. your DOS manual).  If you allocate a large number of buffers in CONFIG.SYS,
  1203. disk operations occur infrequently and this improves performance.  If you need
  1204. to have the session log updated more frequently to minimize the loss of data
  1205. when there is a power failure, you can do this (at the expense of efficiency)
  1206. by allocating a smaller number of buffers in CONFIG.SYS.
  1207.  
  1208. If you have Kermit's TERMINAL TYPE set to NONE, there is a two second pause
  1209. after you give a CONNECT command, to give you time to read the message about
  1210. how to get back.
  1211.  
  1212. 132-COLUMN MODE
  1213.  
  1214. You can't use 132-column in Windows, because Windows takes over the graphics
  1215. adapter and hides its particulars from Kermit.
  1216.  
  1217. If you have a monitor with fixed horizontal frequency but a video adapter that
  1218. Kermit knows how to switch into 132 column mode, you will see only garbage on
  1219. your screen whenever Kermit switches to 132 columns.  There is no way to tell
  1220. Kermit to ignore "switch to 132 columns" commands.  If you buy a
  1221. 132-column-capable video adapter, be sure you have a compatible monitor.  See
  1222. KERMIT.UPD for further information on 132-column mode.
  1223.  
  1224. GRAPHICS TERMINAL EMULATION
  1225.  
  1226. In earlier releases, MS-DOS Kermit responded to ESC 1 and ESC 2 for
  1227. automatically switching into and out of Tektronix graphics mode, for the
  1228. benefit of some long-forgotten host-based graphics software.  This feature
  1229. has been discontinued because these escape sequences mean something entirely
  1230. different, namely "switch character size" in VT340 Tek mode.
  1231.  
  1232. PS/2 Model 25 and 30 MCGA adapter is used in low-resolution CGA mode by
  1233. default; images may be elongated or truncated.    Hi-resolution graphics can be
  1234. done (as of version 3.11) via SET TERM GRAPHICS VGA, but these slow PC models
  1235. might not be able to keep up at speeds above 9600 bps.
  1236.  
  1237. When you type the escape character (normally Ctrl-]) while in Tektronix
  1238. graphics mode, the screen goes back to text memory.  Then when you type the
  1239. argument character, the graphics screen reappears (unless the argument was C or
  1240. P).  Ctrl-]F will not file the graphics screen, but rather the text screen,
  1241. because that's the screen that's showing after type the Ctrl-] key.  To file
  1242. the graphics screen (in TIFF format), use \Kdump (normally on Ctrl-Keypad-End).
  1243.  
  1244. You can't dump the Tektronix screen while the GIN-mode crosshair cursor is
  1245. active; Kermit's keyboard translator is not active.  Key strokes (of regular
  1246. typewriter keys) or mouse actions are used to transmit the crosshair
  1247. coordinates.  If you press a non-typewriter key, Kermit just beeps.
  1248.  
  1249. Kermit does not emulate a particular kind of color graphics terminal, such as a
  1250. DEC ReGIS display or a Tektronix 41xx or 42xx series.  However, it can be used
  1251. for color graphics by mixing ANSI color-setting escape sequences with Tektronix
  1252. or Sixel commands.  This requires graphics software vendors adding support for
  1253. MS-DOS Kermit graphics to their packages (so far, WordPerfect Corp has done
  1254. this for their host-resident products).  There is at least one ReGis-to-Sixel
  1255. converter on the market: RETOS, a DEC product for VAX/VMS.
  1256.  
  1257. Problems may occur when using Kermit with host-resident (VAX/VMS) versions of
  1258. WordPerfect because the color palette report sent upon request of WordPerfect
  1259. is very long. If the host is not configured properly, parts of the report will
  1260. be lost because of overruns on the VMS side.  SET TERM /HOSTSYNC and /TTSYNC
  1261. are required for WP/VMS.  Even then intervening communication boxes (e.g.
  1262. terminal servers) can become overloaded with the 200++ byte response.
  1263.  
  1264. = PRINTER SUPPORT
  1265.  
  1266. Kermit uses DOS services for printing. There is no knowledge of particular
  1267. printer types in Kermit.  Kermit determines whether the printer is ready, or
  1268. whether there has been a printing error, via DOS's return code.  If DOS tells
  1269. Kermit the printer is not ready, Kermit changes the printer device name to NUL
  1270. so subsequent print operations won't block.  To reenable printing operations
  1271. (e.g. after turning on the printer, adding paper, etc), use a SET PRINTER
  1272. command such as SET PRINTER PRN or SET PRINTER LPT1.
  1273.  
  1274. When printing a file that contains a Ctrl-Z character, DOS will "close" the
  1275. printer as soon as it sees the Ctrl-Z, and when subsequent characters are sent
  1276. to the printer, DOS reports a printer error and Kermit reports "Printer error,
  1277. discard or retry?".  This is a feature of DOS.
  1278.  
  1279. The Print Screen and Shift-PrintScreen keys are never seen by Kermit.  They
  1280. are intercepted and acted upon by the BIOS.  Thus Kermit has no control over
  1281. the format of the printed output.  For example, a formfeed is not added to the
  1282. end to force a page eject.  If you want to print the current screen with a
  1283. formfeed at the end, use the following procedure:
  1284.  
  1285.   SET DUMP PRN    ; Specify that screen dumps go to the printer
  1286.  
  1287. and then use the \Kdump keyboard verb to accomplish the screen dump.  This
  1288. verb is assigned by default to the keypad Ctrl-End key, but you can assign it
  1289. to another key of your choice (but not Print Screen), for example:
  1290.  
  1291.   SET KEY \315 \Kdump  ; Assign screen dump to F1
  1292.  
  1293. Alternatively, you define a key (this time we use the F2 key) to send a
  1294. formfeed (ASCII 12) to the printer:
  1295.  
  1296.   DEFINE FFPRINT run echo \12 >PRN
  1297.   SET KEY \316 {\Kffprint}
  1298.  
  1299. Or you can redefine your host printing procedure to include a formfeed:
  1300.  
  1301.   1. Send ESC [ 5 i
  1302.   2. "type" the file
  1303.   3. Send formfeed (ASCII 12)
  1304.   4. Send ESC [ 4 i
  1305.  
  1306. (Shift-)Printscreen can cause the PC to hang if there is no attached printer.
  1307. This is a BIOS feature, Kermit never receives the command.  If this happens
  1308. during terminal emulation, try pressing Alt-= (hold down Alt and press the "="
  1309. key) several times to reset the terminal emulator.
  1310.  
  1311. Serial printers are not well supported by DOS, and since Kermit does all its
  1312. printing through DOS, Kermit's printing features might not work well with
  1313. serial printers.  To use a serial printer effectively, you must have a driver
  1314. for it that takes care of flow control, such as MSPSPD, available on the
  1315. MS-DOS Kermit Utilities and Technical Documentation diskette.
  1316.  
  1317. Transparent printing starts when the host sends the sequence ESC [ 4 i and
  1318. stops when the host sends ESC [ 5 i.  All characters, including escape
  1319. sequences, that arrive at the port are passed directly to the printer without
  1320. translation (but the parity bit is stripped if Kermit's parity is not NONE).
  1321. If character translation is desired, or it is desired not pass screen-control
  1322. escape sequences to the printer, use Autoprint rather than Transparent print
  1323. (ESC [ 0 i, ESC [ ? 4 i, ESC [ ? 5 i).    In that case, characters are translated
  1324. to the current IBM code page.  If your printer doesn't support your IBM code
  1325. page, you need an external utility to translate from the PC code page to the
  1326. printer's character set.  You can use SET PRINTER xxxx to capture Transparent
  1327. print or Autoprint data into a file.
  1328.  
  1329. Under PATHWORKS, reportedly, transparent print operations to a network printer
  1330. do not cause printing to actually occur until the user escapes back to the
  1331. MS-Kermit prompt and forces the printer to be closed (and reopened) with a SET
  1332. PRINTER PRN command.
  1333.  
  1334. If transparent print material arrives but the printer is not ready, Kermit
  1335. issues a PRINTER IS NOT READY message and gives the user a chance to retry
  1336. (R) or discard (D).  If D is selected, then, even if the printer is made
  1337. ready again, subsequent transparent print jobs are discarded.  Solution:
  1338. escape back to the prompt and give a SET PRINTER PRN command to reenable
  1339. transparent printing.
  1340.  
  1341. = INTERNATIONAL CHARACTER SETS
  1342.  
  1343. MS-DOS Kermit does not directly support Cyrillic terminal sets; that is, you
  1344. can't set your TERMINAL CHARACTER-SET to a Cyrillic set.  However, you can
  1345. still have a Cyrillic terminal session if you have a Cyrillic code page loaded
  1346. and you have issued the appropriate collection of SET KEY and SET TRANSLATE
  1347. INPUT commands.
  1348.  
  1349. Character-set translation during terminal emulation is done between the remote
  1350. TERMINAL CHARACTER-SET and the PC's current code page. During file transfer,
  1351. it's between the TRANSFER CHARACTER-SET and the PC's code page.  At startup,
  1352. MS-DOS Kermit asks DOS to report the current code page, and it sets your FILE
  1353. CHARACTER-SET and your TERMINAL CODE-PAGE to this value.  But DOS often lies
  1354. about the code page, so in most cases when your actual code page is anything
  1355. but 437 (or maybe 850), you, yourself, will have to tell MS-DOS Kermit what
  1356. your code page *really* is, using the following two commands:
  1357.  
  1358.   SET TERMINAL CODE-PAGE CPnnn ; Your actual current code page.
  1359.   SET FILE CHARACTER-SET CPnnn ; The code page for incoming text files.
  1360.  
  1361. The two would normally be the same, but MS-DOS Kermit lets you set them
  1362. differently if you want to, for example if you have a Hebrew code page loaded
  1363. for display purposes, but you want to download a Russian file that you will
  1364. display later, after loading a Cyrillic code page.
  1365.  
  1366. MS-DOS Kermit does not allow all possible combinations of FILE and TRANSFER
  1367. character sets.     The Hebrew code page (CP862) forces the Hebrew transfer
  1368. character set, and vice-versa.    Similarly for Cyrillic and Latin-2, etc.
  1369. Latin-1, however, can be used with many code pages: 437, 850, 861, 863, 865.
  1370.  
  1371. Some of the ISO 2022 or DEC-specific character-set designation escape
  1372. sequences, which *do* work correctly, nevertheless fail to have an effect on
  1373. the character-set field of the SHOW TERMINAL display.
  1374.  
  1375. LOG SESSION records characters that arrive at the serial port, before
  1376. translation by either Kermit's built-in terminal character set translation
  1377. tables or by user-specified SET TRANSLATION INPUT commands.  This allows
  1378. REPLAY to work correctly but it prevents special characters from being logged
  1379. after translation to the PC's own character set.  Screen dump (Ctrl-End or
  1380. Ctrl-]F) and autoprint, however, record the translated characters.
  1381.  
  1382. SET TERMINAL CHARACTER SET is effective only for text screens, not for
  1383. graphics screens.  This is because the fonts for all the special characters
  1384. have not been designed yet (and may never be, and even if they are, they would
  1385. require a lot of memory).
  1386.  
  1387. International characters in macro names are not case independent.
  1388.  
  1389. Case-independent string matching operations (e.g. SET INPUT CASE IGNORE,
  1390. IF EQUAL xxx yyy) won't necessarily work with international characters.
  1391.  
  1392. = JAPANESE KANJI
  1393.  
  1394. MS-DOS Kermit supports translation of Japanese Kanji during file transfer.
  1395. The Japanese Kanji code page for PCs is CP982 (this is the FILE CHARACTER-SET).
  1396. The Kanji code on the wire (in the file transfer packets) is Japanese Extended
  1397. UNIX Code (EUC) -- SET TRANSFER CHARACTER-SET JAPANESE-EUC.
  1398.  
  1399. At present, however, MS-DOS Kermit does not support Japanese Kanji
  1400. character-set translation during terminal emulation.  However, version 3.13 of
  1401. MS-DOS Kermit does support the Kanji video mode used on IBM-compatible DOS/V
  1402. PCs, which allows Kanji terminal emulation if the remote character set happens
  1403. to be Shift-JIS (CP982).
  1404.  
  1405. Special Japanese-model IBM PCs have Kanji fonts in firmware, allowing display
  1406. of Kanji characters in both Japanese-DOS and Japanese-DOS/V.
  1407.  
  1408. It is also possible to display Kanji on USA-model IBM PCs and compatibles with
  1409. VGA adapters.  In this case, Japanese-DOS/V (not Japanese-DOS) must be used.
  1410. More precisely, you can display Kanji even in English DOS/V if you have the
  1411. Japanese font (software) driver and Japanese (software) keyinput driver (you
  1412. can even use the 101 English keyboad).  Japanese-DOS/V is a revolutionary
  1413. operating system that opens the Japanese IBM-PC market.  Prior to DOS/V,
  1414. Japanese had to buy an expensive special Kanji PC models that could not run
  1415. English applications.  Japanese DOS/V consists of:
  1416.  
  1417.   Baseline DOS/V
  1418.   + Japanese font driver
  1419.   + Japanese fonts
  1420.   + Japanese keyinput driver
  1421.   + Japanese dictionary
  1422.  
  1423. The Japanese font driver displays Japanese characters in VGA 640 x 480 graphic
  1424. mode, and sometimes it might conflict with English applications.  However you
  1425. can easily switch back and forth because the baseline DOS/V is the same.
  1426.  
  1427. = COMMAND PROCESSING
  1428.  
  1429. Kermit's backslash-code processing will produce unexpected results when you
  1430. have a file or directory name that starts with a digit.  For example, if
  1431. Kermit's command processor sees the string "C:\4DOS", it translates the "\4"
  1432. into a Control-D character and will not find the 4DOS directory.  At present,
  1433. the only workaround for this situation is to avoid starting directory or
  1434. filenames with digits.
  1435.  
  1436. When a command field begins with the @ (at-sign) character, the following
  1437. characters are interpreted as a filename that contains the rest of the
  1438. command.  If you need to type a command field that actually starts with @, or
  1439. respond to an ASK or ASKQ query with text that starts with an atsign, you have
  1440. to encode the atsign as \64 or \{64}.
  1441.  
  1442. \B in an OUTPUT command tells Kermit to send a BREAK.  \L Tells Kermit to
  1443. send a Long BREAK.  If you need to output \B or \L literally, use two OUTPUT
  1444. statements, e.g.:
  1445.  
  1446.   define xbreak pause 1, output +++, pause 1, output AT\92, output B, -
  1447.     pause 1, output ATO\13, connect
  1448.   set key <key-of-your-choice> {\Kxbreak}
  1449.  
  1450. Notice that the backslash itself is written as "\92" to output it literally.
  1451.  
  1452. Certain commands, such as RUN, DIRECTORY, TYPE, etc, invoke COMMAND.COM
  1453. "underneath" Kermit, and COMMAND.COM might, in turn, invoke other programs.
  1454. If you get the message "Can't run program" in response to such a command, it
  1455. usually means there is not enough memory.  But you should also check your
  1456. SHELL environment variable.
  1457.  
  1458. When you RUN a program from within KERMIT, using the RUN command, there is no
  1459. way to access the program's return code.  In particular, Kermit's ERRORLEVEL
  1460. variable does not reflect the program's return code.  Kermit must RUN programs
  1461. through COMMAND.COM, and COMMAND.COM does not pass along the program's return
  1462. code to Kermit.
  1463.  
  1464. If you include the word STAY anywhere on the Kermit command line, e.g.:
  1465.  
  1466.   kermit echo stay
  1467.  
  1468. it is interpreted as a STAY command.
  1469.  
  1470. A command file that contains lines or commands too long for DOS's line buffer
  1471. (usually 128 characters) can hang your PC: a DOS problem, not a Kermit problem.
  1472.  
  1473. Commands in command files can be continued by including "-" as the last
  1474. character on the line, but NOT if the line ends with a trailing comment.  In
  1475. other words, you can't have a trailing comment on a continued line. If you
  1476. need to end a line with a dash, but the dash is part of the command rather
  1477. than a continuation symbol, use \45 instead or add a trailing comment.
  1478.  
  1479. Trailing comments can be used only in command files.  All text starting with
  1480. the first semicolon through the end of line is ignored.     If you need to include
  1481. an actual semicolon in a command, precede it with a backslash (\;).
  1482.  
  1483. The name and password that you specify in SET SERVER LOGIN must be matched
  1484. exactly by the ones in REMOTE LOGIN.  Case matters.  If you need to include
  1485. spaces within the username, password, or account field of the REMOTE LOGIN or
  1486. SET SERVER LOGIN commands, surround the field with {braces}.
  1487.  
  1488. DISABLE ALL is not equivalent to all the other DISABLE commands given
  1489. separately.  For example, DISABLE DELETE restricts REMOTE DELETE commands from
  1490. the client to working only in the MS-DOS Kermit server's current directory,
  1491. while DISABLE ALL prevents all types of modifications to the PC's file system,
  1492. including file deletion and creation.
  1493.  
  1494. = KEY MACROS
  1495.  
  1496. Version 3.13, unlike previous versions, attempts to recognize the difference
  1497. between between Space, Shift-Space, Ctrl-Space, Alt-Space, etc, so that SHOW
  1498. KEY shows different scan codes for each combination of Space with modifier
  1499. keys (a common request was to be able to SET KEY Ctrl-Space to send NUL).  An
  1500. unanticipated side effect of this change was that unmodified Space returns a
  1501. strange scan code when seen through the LK250 driver.  The cure is to add:
  1502.  
  1503.   IF EQ \v(keyboard) 250 IF > \v(version) 312 SET KEY \313 \32
  1504.  
  1505. to your MSKERMIT.INI file (this was added to the standard MSKERMIT.INI file
  1506. on September 9, 1993).
  1507.  
  1508. Key macros are executed while in CONNECT mode.  If you assign the \Khangup verb
  1509. to a key, Kermit remains in CONNECT mode after the hangup takes place.  On a
  1510. serial dialup connection, Kermit turns off the DTR signal, and you should see
  1511. a confirmation message from the modem, such as NO CARRIER, on your screen.  On
  1512. a TCP/IP network connection, however, Kermit does indeed drop the connection,
  1513. but since Kermit is still in CONNECT mode, it is immediately reestablished.
  1514. If you want to terminate a network session by pressing a key, use a method
  1515. that leaves CONNECT mode.  You can do this by defining a macro to hang up, and
  1516. then assigning execution of the macro to the key, e.g. Alt-d:
  1517.  
  1518.   define xxx hangup
  1519.   set key \2336 {\Kxxx}
  1520.  
  1521. This causes Kermit to return from CONNECT mode and execute the macro without
  1522. returning to CONNECT mode.  This technique works for both serial and network
  1523. connections.
  1524.  
  1525. To assign several verbs to a single key, use braces as in this example:
  1526.  
  1527.   set key \315 {\{Kgold}\{KdecF13}}
  1528.  
  1529. or this:
  1530.  
  1531.   set key \315 {\{Kfoo}\{Kdump}\{Kbar}}
  1532.  
  1533. in which "foo" and "bar" are macro names, and \Kdump is Kermit's screen-dump
  1534. verb.
  1535.  
  1536. = FILE TRANSFER
  1537.  
  1538. When using modems that do data compression, be sure to (a) use hardware flow
  1539. control (SET FLOW RTS/CTS); (b) set your serial port speed higher
  1540. (preferably at least 4 times higher) than the modem's connection speed; for
  1541. example, use SET SPEED 57600 for 14400 bps modems; (c) lock the modem's
  1542. interface speed.  The dialing script files for high speed modems, such as
  1543. PP14400.SCR, do all of this for you automatically.
  1544.  
  1545. Even when using RTS/CTS flow control, it is possible that characters will be
  1546. lost during file transfer.  This can happen if the PC turns off interrupts for
  1547. any length of time, e.g. to service the hard disk -- especially if you have a
  1548. disk-caching program active.  It can also happen if you have loaded the DOS
  1549. PRINT TSR, or a screen saver, or any of various other TSRs.  In such cases,
  1550. Kermit never gets the interrupt that signals a character has arrived, and so
  1551. cannot service it, and so Kermit's input buffer does not begin to fill up,
  1552. and so Kermit does not activate flow control.  The standard advice here is
  1553. to remove TSRs.  Also check that your PC is using "Fast A20 Gate" switching to
  1554. protected mode for items loaded above 1MB, such as RAM disks, etc, to prevent
  1555. slow keyboard controller equivalent from making the PC deaf during disk
  1556. activity.
  1557.  
  1558. The efficiency reported at the end of a file transfer is relative to the
  1559. serial port speed.  This can be confusing and/or misleading when using a modem
  1560. whose connection speed to the other modem is different from the serial port
  1561. speed, especially when the modems are also doing compression.
  1562.  
  1563. At present, there is no way to disable the "dynamic packet length" feature.
  1564.  
  1565. The transaction logging feature is somewhat broken in version 3.13; names of
  1566. received files in a file group are not recorded, e.g. during a GET *.*
  1567. operation.  This will be fixed in the next release.
  1568.  
  1569. SET EOF CTRL-Z, when used with text files that actually contain Ctrl-Zs, might
  1570. result in gaps or truncation in the vicinity of the Ctrl-Z.  This is a DOS
  1571. feature.
  1572.  
  1573. If the remote Kermit sends a file whose name (the part before the period)
  1574. corresponds to a DOS device name, such as CON, PRN, etc, the incoming file
  1575. will be sent to that device rather than being stored on disk.  This is a
  1576. feature of DOS.
  1577.  
  1578. When using Kermit through a terminal server (particularly those that execute
  1579. the TCP/IP Telnet protocol), or directly through a SET PORT TCP connection, it
  1580. is sometimes necessary to SET PARITY SPACE for file transfer. It is sometimes
  1581. impossible to use very long packets with terminal servers.  Try SET RECEIVE
  1582. PACKET-LENGTH 80, working up or down to the longest length that works.
  1583.  
  1584. REMOTE TYPE and other REMOTE commands resulting in an error "Unable to open
  1585. CON": insufficient FILES= in CONFIG.SYS.  FILES= should be at least 20.
  1586.  
  1587. The MS-DOS Kermit command REMOTE SET BLOCK-CHECK will generally have no effect
  1588. upon a remote server unless the SET BLOCK-CHECK is also given locally to
  1589. MS-DOS Kermit.
  1590.  
  1591. The host prompt for TRANSMIT is a single character (SET TRANSMIT PROMPT).  It
  1592. is not possible to specify a multi-character or varying transmit-prompt.
  1593.  
  1594. = SCRIPT PROGRAMMING
  1595.  
  1596. Many users have observed that it is difficult to interrupt the execution of
  1597. a script program, such as MS-DOS Kermit's dialing scripts.  Typing Ctrl-C or
  1598. Ctrl-Break does not have an immediate effect; these are noticed only when
  1599. Kermit asks DOS to read from (or check the status of) the keyboard, and only
  1600. certain Kermit commands do this.  Of these, the most useful is PAUSE, which
  1601. fails if any key is pressed during the PAUSE interval.  So if you want your
  1602. script program to be nicely interruptible, you can include the following two
  1603. commands at key points in the program:
  1604.  
  1605.   PAUSE 1
  1606.   IF FAIL STOP 1 Interrupted
  1607.  
  1608. You can increase the frequency with which DOS checks for Ctrl-C or Ctrl-Break
  1609. by including a BREAK=ON statement in your CONFIG.SYS file.
  1610.  
  1611. The terminal emulator is active only when MS-DOS Kermit is in CONNECT mode
  1612. (and when it is executing the REPLAY command).  Thus it is NOT active during
  1613. execution of script commands such as INPUT and OUTPUT.  This means:
  1614.  
  1615.  1. If the host sends the escape sequence that tells the terminal to identify
  1616.     itself, it is ignored.  You have to put the appropriate INPUT and OUTPUT
  1617.     commands in your script program.  Here is a macro to set your terminal type
  1618.     in Kermit and to set up the appropriate response string as well as terminal
  1619.     type string:
  1620.  
  1621.     def term if not def \%1 def \%1 \v(term),-
  1622.       set term type \%1,-
  1623.       if fail end 1,-
  1624.       assign _ttype \%1,-
  1625.       if eq \%1 vt320 assi _tid \27[\{63}63\\\;1\\\;2\\\;4\\\;8\\\;9\\\;15c,-
  1626.       if eq \%1 vt220 assi _tid \27[\{63}62\\\;1\\\;2\\\;4\\\;8\\\;9\\\;15c,-
  1627.       if eq \%1 vt102 assi _tid \27[\{63}6c,-
  1628.       if eq \%1 vt100 assi _tid \27[\{63}1c,-
  1629.       if eq \%1 vt52  assi _tid \27/Z
  1630.  
  1631.     Whenever you switch terminal emulations, do "term vt102" instead of "set
  1632.     term type vt102" (substitute your preferred terminal type).     In any script
  1633.     that responds to ESC Z (or whatever), have it "output \m(_tid)", and any
  1634.     prompt that asks for your terminal type you can "output \m(_ttype)".  And
  1635.     be sure to execute a "term" command in your MSKERMIT.INI file, so your
  1636.     initial terminal type is set.
  1637.  
  1638.  2. If the host sends escape sequences to set up or configure the terminal,
  1639.     these too are ignored; i.e. they have no effect on Kermit's terminal
  1640.     emulator.
  1641.  
  1642.  3. A host-generated escape to put the terminal in Tektronix mode has no
  1643.     effect.  Put explicit SET TERMINAL TYPE TEK commands in the appropriate
  1644.     places in your script program.
  1645.  
  1646.  4. Screen formatting escape sequences have no effect.    If you have SET INPUT
  1647.     ECHO ON, they are simply displayed as-is.
  1648.  
  1649. If the remote host is sending ANSI (VTxxx) escape sequences during execution of
  1650. the script program, then users of IBM PCs can use the ANSI.SYS or similar
  1651. console driver to interpret the escape sequences.  This is particularly useful
  1652. when running a script that logs in to a full-screen system, such as an IBM
  1653. mainframe through a protocol converter.     But beware: ANSI.SYS is not totally
  1654. compatible with Kermit's VT emulator, and it may produce unwanted side effects,
  1655. the most annoying of which is suddenly popping your PC into 40-column mode!  If
  1656. you experience difficulties with your screen display while using Kermit script
  1657. programs, use SET INPUT ECHO OFF.  Or remove ANSI.SYS from your CONFIG.SYS file
  1658. and reboot.
  1659.  
  1660. PAUSE, WAIT, and similar commands also open the connection on the currently
  1661. selected port if it is not open already.  For example, SET PORT TCP <host>
  1662. does not open the connection itself -- the first input/output command
  1663. (including PAUSE) will do it.  Similarly, if DTR is not asserted on a serial
  1664. connection, PAUSE will assert it.
  1665.  
  1666. PAUSE, WAIT, and similar commands also cause port input to be echoed to the
  1667. screen if INPUT ECHO is ON.  Use SET INPUT ECHO OFF to defeat this effect.
  1668.  
  1669. If the REINPUT command fails to find the requested text in the INPUT command
  1670. buffer, it will wait (up to the timeout interval) for more characters to
  1671. arrive from the communication channel.
  1672.  
  1673. INPUT / REINPUT combinations will not work if the INPUT buffer is smaller than
  1674. the amount of text that separates the INPUT text from the REINPUT text.  You
  1675. can increase the size of the INPUT buffer by including the desired size in
  1676. your KERMIT=INPUT <size> environment variable.  The default size is 256 bytes.
  1677.  
  1678. Script programming hint: To test whether a readable floppy disk is available
  1679. in drive A:, do this:
  1680.  
  1681.   SPACE A:
  1682.   IF FAILURE ECHO No diskette in drive A:.
  1683.  
  1684. The ON_EXIT macro is intended only for automatic execution when MS-DOS Kermit
  1685. exits.  It only works once, to prevent recursion (as would happen, for
  1686. example, if you put an EXIT command in your ON_EXIT definition).
  1687.  
  1688. = MEMORY MANAGEMENT
  1689.  
  1690. MS-DOS Kermit, like any DOS or Windows program, is likely to misbehave if your
  1691. PC memory is insufficient or is incorrectly configured.  MS-DOS Kermit runs in
  1692. conventional memory (the first 640K) of your PC.  It occupies about 280K
  1693. initially, and then allocates additional memory as needed for rollback
  1694. screens, file-transfer packet buffers, etc.  Kermit uses additional memory to
  1695. execute certain commands such as TYPE and DIRECTORY, for which it invokes a
  1696. second copy of COMMAND.COM (appoximately 30K) in conventional memory, as well
  1697. as RUN, which can invoke not only COMMAND.COM, but an additional program to be
  1698. run by COMMAND.COM, for example "run edit".  If there is insufficient memory,
  1699. these operations will not work; thus it is always best to have as much free
  1700. conventional memory as possible.
  1701.  
  1702. Memory for file-transfer packets is allocated at the time the transfer begins,
  1703. based on the current sliding-window size (SET WINDOW) and packet-length (SET
  1704. RECEIVE PACKET-LENGTH), and is deallocated when the transfer ends.  So SHOW
  1705. MEMORY won't reveal the effect of the packet buffers.  If insufficient memory
  1706. is available for the requested window size and packet length, MS-DOS Kermit
  1707. automatically reduces its RECEIVE PACKET-LENGTH.  For maximum file-transfer
  1708. efficiency, conventional memory is always used for packet buffers. Thus packet
  1709. buffers and RUN/PUSH/TYPE/ DIRECTORY commands "time-share" the same
  1710. conventional memory.
  1711.  
  1712. Memory for graphics screens is taken from your video display adapter.  Storage
  1713. of graphics images in the video adapter's on-board memory allows rapid
  1714. switching between text and graphics screens provided (a) your video has
  1715. sufficient memory, (b) the memory is not "mapped away", and (c) you are not
  1716. running Kermit under Windows.  Video adapter memory is generally in segments
  1717. A000-BFFF.
  1718.  
  1719. Memory for rollback screens is allocated when the CONNECT command is first
  1720. given, i.e. when Kermit first displays its terminal emulation window, and
  1721. remains allocated until you EXIT from Kermit.  This can be demonstrated by
  1722. starting Kermit, giving the command SHOW MEMORY, then giving the CONNECT
  1723. command, then escaping back (Alt-x), and then giving the SHOW MEMORY command
  1724. again -- see how available memory has shrunk.  Approximately 4K is required
  1725. per 24x80 rollback screen (more for bigger screens).  The default number of
  1726. rollback screens is 10, but the number can be set to practically any value at
  1727. all (0 or greater) by giving the following command to DOS before you start
  1728. Kermit (interactively, or in your AUTOEXEC.BAT file):
  1729.  
  1730.   SET KERMIT=ROLLBACK 40
  1731.  
  1732. The smaller the number, the less memory required; the bigger, the more memory.
  1733. In version 3.13, you can also give the new command:
  1734.  
  1735.   SET ROLLBACK <number-of-screens>
  1736.  
  1737. at the MS-Kermit prompt at any time, and the rollback memory will be adjusted
  1738. when you next CONNECT.
  1739.  
  1740. A large number of rollback screens can crowd out other possibilities, like the
  1741. ability to use Kermit's RUN, PUSH, TYPE, DIRECTORY, and other commands that
  1742. run inferior processes.  Version 3.13 of MS-DOS Kermit lets you store your
  1743. rollback screens in Expanded Memory (EMS) if you have more than 1MB of
  1744. physical memory and you have an expanded memory manager for it like
  1745. Quarterdeck QEMM or EMM386 and HIMEM that come with DOS 5.0 and Windows 3.1.
  1746.  
  1747. Using expanded memory for rollback screens frees 40K of conventional memory if
  1748. you are using the default number (10) of rollback screens, and it also allows
  1749. you to have a much larger number of rollback screens.  The following steps are
  1750. required to keep your rollback screens in expanded memory:
  1751.  
  1752. 1. Make sure the desired amount of expanded (EMS) (not "extended", or XMS)
  1753.    memory is available.     The DOS MEM command will tell you this.
  1754.  
  1755. 2. In your AUTOEXEC.BAT file, set the desired number of Kermit rollback
  1756.    screens.  For example, for 250 screens (requiring about 1 megabyte):
  1757.  
  1758.       SET KERMIT=ROLLBACK 250
  1759.  
  1760. 3. Give the following command to MS-DOS Kermit:
  1761.  
  1762.       SET TERMINAL EXPANDED-MEMORY ON
  1763.  
  1764.    If this command fails, Kermit prints an appropriate error message.
  1765.  
  1766. Now start a Kermit session, scroll some text off the screen during CONNECT
  1767. mode, and check the operation of the PageUp/PageDown keys.  If they work,
  1768. you're done.  And as an added benefit, graphics screens will also be stored
  1769. in expanded memory, allowing you to switch between graphics and text screens
  1770. (Alt-minus), even under Windows, without losing the graphics screen.
  1771.  
  1772. If it doesn't work, then welcome to the bewildering world of DOS memory
  1773. management.  The most common symptom of a bad memory configuration is that
  1774. your PC will freeze the first time Kermit tries to scroll a line off the
  1775. screen or the first time it tries to clear the screen.    Now you should begin
  1776. looking at your CONFIG.SYS file.
  1777.  
  1778. First, here is a straightforward DOS 5.0 CONFIG.SYS configuration that sets up
  1779. a PC with 8MB of memory to have 6MB of expanded memory:
  1780.  
  1781.   DEVICE=C:\DOS\HIMEM.SYS
  1782.   DEVICE=C:\DOS\EMM386.EXE 6144 RAM
  1783.   DOS=HIGH,UMB
  1784.   DEVICEHIGH=C:\DOS\ANSI.SYS
  1785.  
  1786. HIMEM.SYS must be loaded first and then EMM386.     With memory management now
  1787. active, DOS is told to use "high memory" (don't ask) and "upper memory blocks"
  1788. (UMB, the space between 640K and 1MB) and then ANSI.SYS is loaded into the
  1789. upper memory area rather than conventional memory.
  1790.  
  1791. EMM386 is asked to take care of 6144K of expanded (EMS) (not extended, XMS)
  1792. memory, and the RAM switch means that it also should manage the upper memory
  1793. blocks.     This configuration works on a PC that has 8MB of memory (6144K =
  1794. 6MB = 1024 x 6), leaving 1MB of extended memory for any process that might need
  1795. it.  If you have less memory than that, adjust as appropriate.
  1796.  
  1797. If you are using RAMDRIVE.SYS, give it the /A switch to use expAnded memory,
  1798. rather than the /E switch for extEnded memory, e.g.:
  1799.  
  1800.   DEVICEHIGH=C:\WINDOWS\RAMDRIVE.SYS 1024 512 64 /A
  1801.  
  1802. After making these changes to CONFIG.SYS, reboot your PC and give a DOS MEM
  1803. command to check that the needed amount of Expanded (EMS) memory is available.
  1804.  
  1805. Now run Kermit and check the expanded-memory rollback feature. Also tell
  1806. Kermit to SHOW MEMORY to see how much conventional memory remains after
  1807. starting Kermit.  If it's not enough for your purposes, look at your
  1808. CONFIG.SYS and AUTOEXEC.BAT files to see if there are any other drivers or
  1809. TSRs that can be removed or loaded high.  Here's another hint: If you access a
  1810. CD-ROM drive via Microsoft CD Extensions, include the /E switch (Expanded)
  1811. when you start it up:
  1812.  
  1813.   C:\BIN\MSCDEX /E /D:MSCD000 /M:10
  1814.  
  1815. In a more complicated configuration, suppose you have a network interface
  1816. board that uses a certain segment of memory (at, for example, segment address
  1817. CC00) which conflicts with DOS's memory management (note: addresses are
  1818. usually written in hexadecimal).  In that case, you have to tell EMM386 to
  1819. "exclude" this segment from its memory managing:
  1820.  
  1821.   DEVICE=C:\DOS\EMM386.EXE 6144 x=cc00-cc7f RAM
  1822.  
  1823. These segment address numbers are obtained from the technical manual for your
  1824. network interface board (or, perhaps more likely, from the board vendor's
  1825. technical support phone number).  Additional "exclude" clauses might be
  1826. needed for other boards or adapters.
  1827.  
  1828. For debugging, get additional information about your PC's memory layout using
  1829. the DOS MEM/C and MEM/P commands, the MSD program that comes with Microsoft
  1830. Windows, or the MFT (Manifest) program that comes with Quarterdeck QEMM.
  1831.  
  1832. If all else fails, tell Kermit to SET TERMINAL EXPANDED-MEMORY OFF (this is
  1833. the default anyway).  NOTE: whenever you switch Kermit's expanded memory
  1834. status from OFF to ON or vice versa, your previous rollback screens are lost.
  1835.  
  1836. Use caution with QEMM v6 "Stealth (ST:M) optimization".     This prevents Kermit
  1837. from accessing your video board's BIOS memory and finding the video board's
  1838. signature, and therefore from determining the appropriate method for switching
  1839. between 80 and 132 columns.  Most boards have a signature string within the
  1840. first 200h bytes of the video BIOS and excluding that much from stealth mode
  1841. should be sufficient to preserve the identification information.
  1842.  
  1843. = INTERACTIONS WITH DOS
  1844.  
  1845. A few users have reported that Kermit crashes with a "divide overflow" error.
  1846. It is believed that this happens when Kermit attempts to calibrate a software
  1847. timing loop that is independent of the speed of the computer by accessing the
  1848. system timer chip.  The speculation is that some external entity, a TSR
  1849. perhaps (maybe a screen saver), is reprogramming the timer chip out from under
  1850. Kermit.  Other common causes revolve around memory management, particularly
  1851. preventing the manager from stepping on either the LAN adapter or on video
  1852. memory (segments A000-BFFF).  Some screen savers, ANSI.SYS replacments,
  1853. keyboard helpers can contribute to too.  Print spoolers won't help things, nor
  1854. will disk cache programs.  Bus speed ought to be set to 8MHz and the number of
  1855. wait states should not stress the hardware.  etc etc.
  1856.  
  1857. The limit on your DOS PATH string is 127 characters.  If you add, say,
  1858. C:\KERMIT to the end of you your PATH= statement in AUTOEXEC.BAT, and that
  1859. makes it longer than 127, DOS (and Kermit's TAKE and similar commands) won't
  1860. be able to find your Kermit files.
  1861.  
  1862. All sorts of problems can occur when there are problems with your DOS PATH.
  1863. Kermit won't be able to find its TAKE files, INI files, patch files, etc.
  1864. Reportedly, when PCs are connected to Novell networks, "if there is not both a
  1865. system and a personal NetWare login script, however brief, then the default
  1866. LOGIN.EXE script will eat your DOS Path.  Be aware that DOS 6.2 has some
  1867. funnies about handling autoexec.bat and the master environment.  Also ensure
  1868. you are running without SETVER affecting the NetWare shells (i.e. use the
  1869. proper NetWare shell so no SETVER is needed)."
  1870.  
  1871. A REMOTE HOST or similar command sent to an MS-DOS Kermit server can invoke the
  1872. DOS critical error handler, which issues its familiar "Abort, Ignore, Retry?"
  1873. message on its real screen, and is waiting for a response from its own real
  1874. keyboard, and so the server will no longer respond.  Kermit attempts to catch
  1875. many of these errors before DOS learns learns about them, but some cannot be
  1876. avoided (like disk i/o errors).
  1877.  
  1878. Similarly, a REMOTE DIRECTORY command sent to an MS-DOS Kermit server can
  1879. cause the server to hang if its default directory command pauses after each
  1880. screen (DIRCMD=/P).  In fact, the server will hang any time a subprocess
  1881. invoked by any REMOTE command (watch out, in particular, for REMOTE HOST)
  1882. requests keyboard input.
  1883.  
  1884. MS-DOS Kermit uses the program named in the DOS Environment command line
  1885. starting as SHELL= as a replacement for COMMAND.COM.  Such a line is seen by
  1886. typing SET at the DOS prompt, and it is not associated with the SHELL= line
  1887. appearing in file CONFIG.SYS.
  1888.  
  1889. Interaction between MS-DOS Kermit and various terminate-and-stay-resident
  1890. (TSR) programs is necessarily unpredictable.  Console, mouse, clock, or
  1891. graphics drivers might interfere with file transfer, e.g. the CMOSCLK.SYS
  1892. driver on the PS/2 model 55SX.  If TSR programs are interfering with Kermit
  1893. (e.g. by taking over the timer or serial port interrupts), you should remove
  1894. them all from your AUTOEXEC.BAT or CONFIG.SYS files, and then put them back
  1895. one by one until you have identified the culprit.
  1896.  
  1897. Mouse drivers are particularly notorious in this respect.  Suggestion: don't
  1898. load your mouse driver in CONFIG.SYS or AUTOEXEC.BAT.  Instead, load it
  1899. manually when you need to use the mouse, unload it or turn it off when you are
  1900. finished with the mouse.  Most mouse drivers allow this.
  1901.  
  1902. Use caution when invoking certain TSR programs while PUSHed from Kermit
  1903. (e.g. using the PRINT command for the first time), as not all of these
  1904. programs observe proper etiquette for allocating and freeing memory, and the
  1905. TSRs will be loaded above Kermit into the middle of memory where they may
  1906. prevent large programs from loading later.
  1907.  
  1908. Beware of console drivers other than the real ANSI.SYS that is supplied with
  1909. DOS.  Many of the public domain, shareware, or third-party commercial console
  1910. drivers interfere not only with the screen and keyboard while Kermit is
  1911. active, but some of them also interfere with the communications port.
  1912.  
  1913. ------------------------------
  1914.  
  1915. Date: 7 FEB 86 10:51-MST
  1916. From: JRD@USU
  1917. Subject: Dashed Cursor Problem on IBM PC
  1918.  
  1919. On early (original motherboard & BIOS) PCs, and on systems that mimic them
  1920. (e.g. early Compaqs), the cursor may assume a strange shape (e.g. minus sign)
  1921. upon return from CONNECT.  This is caused by a bug in the early BIOS, which
  1922. stored cursor attributes incorrectly.
  1923.  
  1924. The PC Tech Journal article discussing the problem is "The Dashed Cursor",
  1925. by Paul Pierce, PC Tech J., Dec. 1985, page 47. His code goes like this:
  1926. ---(cut)---
  1927. ;
  1928. ; Program FIXCURS.ASM by Paul Pierce, PC Tech Journal, Dec 1985, page 47.
  1929. ;
  1930. code    segment public 'code'
  1931.         assume cs:code, ds:code, es:nothing
  1932. ;
  1933. ;       This program is set up to be made into a COM file
  1934. ;
  1935.         org     100H
  1936. ;
  1937. ; First check for the monochrome adapter.
  1938. ;
  1939. start:  int     11H             ; set ax = equipment flag
  1940.         and     al,30H          ; mask off all but video bits
  1941.         cmp     al,30H          ; test for monochrome adapter
  1942.         jne     exit            ; jump if not monochrome
  1943. ;
  1944. ; Now check for incorrect cursor mode returned from the Bios
  1945. ;
  1946.         mov     ah,3            ; call bios to get cursor type
  1947.         int     10H             ;
  1948.         cmp     cx,0607H        ; check for invalid (color) type
  1949.         jne     exit            ; jump if not a bad value
  1950. ;
  1951. ; At this point we know that the monochrome adapter is in use and that
  1952. ; the bios cursor mode is incorrect.
  1953. ; Call the bios to set the cursor type correctly.
  1954. ;
  1955.         mov     cx,080cH        ; use correct cursor type
  1956.         mov     ah,1            ; call bios to set cursor type
  1957.         int     10H
  1958.  
  1959. exit:   mov     ah,0            ; exit back to DOS
  1960.         int     21H
  1961.  
  1962. code    ends
  1963.         end     start
  1964. ---(cut)---
  1965. Here is the executable CURSOR.COM program, uuencoded (decode with uudecode):
  1966. ---(cut)---
  1967. begin 644 CURSOR.COM
  1968. =S1$D,#PP=1&T`\T0@?D'!G4'N0P(M`'-$+0`S2$`/
  1969. ``
  1970. end
  1971. ---(cut)---
  1972. and here again as a BOO file (decode with MSBPCT.EXE):
  1973. ---(cut)---
  1974. CURSOR.COM
  1975. cA4T<3``MA6d0ld@POT71WD7^@`8]07=4;@0cB40~0
  1976. ---(cut)---
  1977.  
  1978. = NETWORKS
  1979.  
  1980. When communicating across certain network pathways, the longest burst of
  1981. information tolerated from the PC can be rather short. For example, the LAT
  1982. path with SET PORT DECNET (PATHWORKS) has a limit of 256 bytes and the SET
  1983. PORT TES path has a limit of 512 bytes in a burst (or less, depending on the
  1984. TES release).  Longer bursts can cause the network software on one end or the
  1985. other to drop the connection.  This is most likely in the following situations:
  1986.  
  1987.  1. During file transfer, when sending files from the PC using long packets
  1988.     and/or sliding windows.  The total size of the packets in the window
  1989.     (packet length times the number of window slots) must be less than the
  1990.     burst limit for the network.
  1991.  
  1992.  2. During VT320 terminal emulation, if the host application (such as VMS
  1993.     or UNIX WordPerfect) sends a Terminal State or Color Palette Request
  1994.     escape sequence, DECRQTSR, "ESC [ 2 ; 2 $ u".  The response to this
  1995.     request is more than 200 characters long and has been known to break
  1996.     LAT and TES connections.
  1997.  
  1998. This is not a Kermit problem, but rather a limitation (or bug) in the
  1999. underlying networking method.  Workarounds include:
  2000.  
  2001.  1. If you have a DECnet LAT connection, make a DECnet CTERM connection
  2002.     instead (i.e. unload your LAT.EXE TSR and load the CTERM TSR instead).
  2003.  
  2004.  2. Enable RTS/CTS flow control between MS-DOS Kermit and the device it is
  2005.     most immediately connected to, if possible.     Otherwise, enable Xon/Xoff
  2006.     flow control in MS-DOS Kermit and at the host on the far end (e.g. tell
  2007.     VMS to SET TERM/HOSTSYNC/TTSYNC).
  2008.  
  2009.  3. Use a different networking method, e.g. TCP/IP instead of DECnet.
  2010.  
  2011. DECnet/DOS PATHWORKS LAT.EXE is a protocol stack sitting on the top of the
  2012. DECnet stack and is independent of LAN adapter providing LAT (Local Area
  2013. Transport) service, primarily intended for terminal emulation over Ethernet.
  2014. Different versions of PATHWORKS come with different versions of LAT.EXE, which
  2015. work differently.  If you have trouble with LAT.EXE, try loading it in
  2016. conventional memory rather than expanded memory.
  2017.  
  2018. On DEC PATHWORKS LAT connections, it is often necessary to tell the LAT
  2019. control program on the PC to reserve enough memory for all of the local LAT
  2020. host names.  By default, space for 16 names is allocated.  Increase your LAT
  2021. control program's memory allocation if you have more than 16 hosts on your
  2022. DECnet network.  Also, remove ALL permanent LAT names from your database and
  2023. let the network provide them (this can mean waiting a minute or two for all
  2024. broadcasts to be heard).
  2025.  
  2026. When making LAT connections from within Windows, either make sure LAT is
  2027. loaded in conventional memory (recommended), or else that you have installed
  2028. Patch 14 (described at the top of this file, normally commented out).  Note
  2029. that under Windows, several copies of Kermit can be run simultaneously, each
  2030. of them with a separate LAT connection, if LAT has been configured to provide
  2031. the neccessary session control blocks (SCBs) to handle extra sessions.
  2032.  
  2033. If you see the "network not available" message when attempting to SET PORT
  2034. DECNET: (1) make sure that LAT, CTERM, or both are loaded; (b) if you loaded
  2035. LAT into expanded memory, make sure it does not conflict with the memory
  2036. usage of other devices, e.g. A000-BFFF for the video adapter; and (c) that
  2037. you have allocated sufficient SCBs and hostname table space.
  2038.  
  2039. To use PATHWORKS and Kermit's built-in TCP/IP support at the same time, use
  2040. the PKTDLL shim, available in Columbia University's packet-driver collection.
  2041.  
  2042. Sending BREAK over network connections via SET PORT BIOS1 + Int 14h
  2043. interceptor may or may not work, depending upon the actual network and drivers
  2044. in use.     Kermit uses the BREAK facility if the driver and network support it.
  2045.  
  2046. Kermit has no way to set or show the speed or parity used by a Novell
  2047. NASI/NACS communications server.  However, you should be able to do this from
  2048. the NASI menu.
  2049.  
  2050. Reportedly, when running Kermit on DOS 6.0 client on a Novell 3.11 network 
  2051. with a NASI 3.0 Communications server, Windows 3.1 crashes upon exiting Kermit.
  2052. Reportedly, removing EMM386.EXE from the CONFIG.SYS file fixed the problem.
  2053.  
  2054. Symptom: PC no longer works after installing a network board.  Diagnosis: a
  2055. 16-bit VGA display adapter is running in 16-bit mode.  Cure: Jumper it back to
  2056. 8 bits and all should start working again.
  2057.  
  2058. PC-NFS prevents applications programs such as Kermit from creating a file in
  2059. the root directory of a PC-NFS disk drive.  When the applications program asks
  2060. if a particular file exists in the root, PC-NFS always responds with "volume
  2061. label present", whether or not the actual file is present.
  2062.  
  2063. MS-DOS Kermit 3.13 and later no longer supports SET PORT TELAPI for Novell LAN
  2064. Workplace for DOS (LWP) versions prior to 4.0.  Versions 3 and 4 are
  2065. incompatible (from the Kermit support point of view), and version 3.x had
  2066. many internal difficulties.  If you need to make SET PORT TELAPI connections
  2067. with Kermit, either upgrade your LWP software, or use an older version of
  2068. Kermit.
  2069.  
  2070. You can't run LAN Workplace for DOS (LWP) and make SET PORT TCP/IP connections
  2071. with Kermit at the same time, because only one protocol stack of a given kind
  2072. can run over a single network board.  If you want to make a TCP/IP connection
  2073. with Kermit when LWP is loaded you can either (a) use SET PORT TELAPI rather
  2074. than SET PORT TCP/IP (slower and less flexible), or (b) unload LWP from the
  2075. DOS prompt by typing TELAPI UNLOAD and TCPIP UNLOAD, and then start Kermit.
  2076.  
  2077. The SET PORT TELAPI command does not allow specification of a TCP port
  2078. number, only a host address.
  2079.  
  2080. SET PORT TELAPI performance is good with version 4 of Novell's LAN WorkPlace
  2081. for DOS but it is poor with version 3.5 because that older version sends each
  2082. Kermit byte in an individual packet.  Because the TELAPI interface lacks the
  2083. ability to resolve Internet, names you can use the small Kermit macro below to
  2084. invoke Novell's program TSU to resolve names and set up a session:
  2085.  
  2086.   define telapi run tsu -o \%1 k1,run tsu -a k1 1,set port bios1
  2087.  
  2088. Use as Kermit command "telapi my.favorite.host" followed by CONNECT.  This
  2089. tells TSU to "o"pen a connection to the host named in Kermit variable \%1 and
  2090. give the session a TSU tag of "k1".  Then run TSU again and "a"ttach this
  2091. session to COM"1" meaning Kermit's BIOS1 port.    Four sessions can be started
  2092. by choosing different tags and port numbers, though this macro does not make
  2093. the changes.  An alternative to SET PORT BIOS1 is SET PORT 3COM for much
  2094. faster throughput; an end-of-session signal is not available with this method
  2095. so the user must exit manually.
  2096.  
  2097. One user reported that SET PORT TELAPI did not work with LWP 4.1 ("No
  2098. connection; Status = -8108").  This was traced to the LWP 4.1 INSTALL not
  2099. loading TELAPI.  After loading TELAPI, everything worked fine.
  2100.  
  2101. The Interconnections TES product, which Kermit fully supports, has a fancy
  2102. menu that pops up if you type the TES "hot key", Alt-LeftShift-T.  Reportedly,
  2103. this pop-up menu interferes with the LK250 driver that is distributed with
  2104. Kermit (it works fine with regular IBM keyboards).  The LK250 driver uses a
  2105. special interrupt, and the TES menu program might not properly chain this
  2106. interrupt.  The workaround is to use TES's text-mode menu, which Kermit brings
  2107. up if you type Alt-Home during terminal emulation.  Version 3.13 of MS-DOS
  2108. Kermit transparently supports both older and the latest TES products.
  2109.  
  2110. However, note that TES itself is somewhat fragile, and does not handle long
  2111. bursts of data very well.  So when using the TES path, keep your packet
  2112. lengths short.  Also, when using MS-DOS Kermit 3.13 and any of the later
  2113. versions of TES that are based on LAT (TES 3.0 or later?), do NOT enable
  2114. MS-DOS Kermit 3.13 Patch 14 -- just comment it out or remove it from the
  2115. MSR313.PCH file.
  2116.  
  2117. Reportedly, when making NETBIOS or 3COM(BAPI) connections under Windows,
  2118. characters from a DOS window can show up in the Kermit window.  Reportedly,
  2119. this can be fixed by setting Kermit's foreground and background priority to
  2120. 150 and setting the priority of the other DOS applications to 5000.
  2121.  
  2122. NETBIOS STATION-TO-STATION CONNECTIONS
  2123.  
  2124. The procedure for establishing a NETBIOS PC-to-PC connection is as follows:
  2125.  
  2126.  1. On the first PC:
  2127.       SET NETBIOS NAME <xxx>
  2128.       SET PORT NETBIOS
  2129.       SERVER
  2130.  
  2131.  2. On the second PC:
  2132.       SET PORT NETBIOS <xxx>.K
  2133.  
  2134. (<xxx> is any name you choose, up to 14 characters long.)
  2135.  
  2136. Now you can initiate file transfer and other Kermit protocol operations from
  2137. the second PC.    If you want the two PCs to "chat" in terminal mode, send a
  2138. FINISH command from the second PC (or type Ctrl-C on the first, server, PC),
  2139. and then give the following commands to both PCs:
  2140.  
  2141.   SET TERMINAL NEWLINE ON
  2142.   SET LOCAL-ECHO ON
  2143.   CONNECT
  2144.  
  2145.  
  2146. TCP/IP SUPPORT
  2147.  
  2148. As of version 3.11, MS-DOS Kermit contains built-in TCP/IP and TELNET protocol
  2149. support.  This allows a PC equipped with an Ethernet or other network board
  2150. that is connected to a TCP/IP network to communicate with any other node on
  2151. the network, without requiring any additional TCP/IP software on your PC.  You
  2152. need an external Ethernet-style (Class 1) packet driver for your network
  2153. interface board, or (as of version 3.12) a SLIP Packet Driver or a Novell ODI
  2154. driver, or (as of version 3.13) the Novell SLIP_PPP ODI driver.     You can also
  2155. use any of various "shims" to sit between Kermit and other kinds of board
  2156. drivers (e.g. NDIS) to make them look to Kermit like Ethernet packet drivers.
  2157.  
  2158. Kermit always registers for the ARP and IP protocols.  In addition, but only
  2159. if you gave the command SET TCP ADDRESS RARP, it will also register for RARP.
  2160. Remember the rule:
  2161.  
  2162.   ONLY ONE APPLICATION PER PROTOCOL PER NETWORK BOARD!
  2163.  
  2164. That's why you can't run (say) PC-NFS and Kermit TCP/IP connections at
  2165. the same time.  Here are some hints for getting around this:
  2166.  
  2167.  . If PC-NFS comes with an Interrupt-14 redirector (similar to FTP
  2168.    Software's TNGLASS program), you can use that in conjunction with
  2169.    Kermit's SET PORT BIOS1.  Not as good Kermit's built-in TCP/IP
  2170.    TELNET, but better than nothing.
  2171.  
  2172.  . You can experiment with the PKTMUX driver.  This is supposed to let
  2173.    multiple TCP/IP stacks share the same network board.  Nobody knows
  2174.    very much about this, and a quick glance at the user manual is more
  2175.    than a little bit scary.  You can find PKTMUX on kermit.columbia.edu,
  2176.    directory packet-drivers/new, files pktdrv.exe and pktmux*.*.
  2177.  
  2178.  . You can install a second network board and give one to PC-NFS and
  2179.    the other to Kermit.  This is actually the best choice -- network
  2180.    boards don't cost much these days, especially compared to value of the
  2181.    amount of time you'd have to spend futzing with the other approaches.
  2182.  
  2183. With ODI, Kermit's Telnet operates across Ethernet (many frame kinds), Token
  2184. Ring, Arcnet, and PCnet.  Kermit does not contain built-in network device
  2185. drivers.  Packet drivers are available from network interface manufacturers,
  2186. and via anonymous FTP from Columbia University, host watsun.cc.columbia.edu
  2187. [128.59.39.2], cd packet-drivers, get the READ.ME file, read it, and take it
  2188. from there.  These files, now called the Crynwr packet driver collection, are
  2189. also available from Columbia University via mail order.     ODI drivers are
  2190. available from makers of the LAN adapter and in some cases from Novell.     See
  2191. Novell archive "novlib" on CompuServe and on machines ftp.is.sandy.novell.com
  2192. [137.65.12.2] and mirrors such as netlab2.usu.edu [129.123.1.44] for Novell
  2193. supplied ODI drivers.
  2194.  
  2195. The TCP/IP code in this version of Kermit has been tested successfully with at
  2196. least the following boards and packet drivers (according to reports from
  2197. users):
  2198.  
  2199.   Ungermann-Bass PC/NIC board with Clarkson UBNICPC packet driver 9.1
  2200.   3COM 3C501 with Clarkson 3C501 packet driver 5.0.
  2201.   3COM 3C503 with Clarkson 3C503 packet driver 9.4.0.
  2202.   Western Digital WD8003E with Crynwr (not WD) WD8003E packet driver 9.7.0
  2203.   Cabletron 2000 and 3000 series DNI boards with CSIPD_E 1.0x and later packet
  2204.     drivers on unshielded twisted pair, thin Ethernet, and thick Ethernet,
  2205.     on both PC/AT and Microchannel buses.
  2206.   Micom-Racal NI5210 with NI5210 packet driver.
  2207.   AT&T EN100 with Clarkson AT&T packet driver.
  2208.   IBMTOKEN.COM 3C501 emulation packet driver 1.9 over various Token Ring 
  2209.     boards and drivers.
  2210.   DIS_PKT over NDIS for LAN Manager networks and NDIS-compliant boards
  2211.     including SD8003, 3C503, AT&T 10MB/sec thinwire
  2212.   Harvard ODIPKT over LSL, LANSUP, and IPXODI over Ethernet (but not
  2213.     Token Ring) 
  2214.   Novell NE2000 with Crynwr NE2000 packet driver (not the Novell MLID!)
  2215.  
  2216. Token Ring, Arcnet, and LocalTalk packet drivers are not supported, as they
  2217. are not Ethernet- or SLIP-class Packet drivers.
  2218.  
  2219. The performance of the 3C50x packet drivers is poor, but the operation seems
  2220. correct.  Suggestion from a 3COM 3C503 Ethernet board user: "When installing
  2221. the packet driver for 3Com 503 cards, one has to pay attention that the memory
  2222. option on the card is not disabled.  It was in my case, and the packet-driver
  2223. did not complain.  Since other drivers (e.g.  the DEC PATHWORKS driver) do not
  2224. require the memory enabled, the default is disabled."
  2225.  
  2226. Reportedly, the packet driver supplied by Western Digital with their WD8003E
  2227. and/or Elite network boards cannot be found by Kermit.    The Crynwr WD8003E
  2228. packet driver, however, works correctly with both the WD8003E and Elite boards.
  2229. Same comments apply to WD8003E.SYS shipped with PC-NFS.
  2230.  
  2231. To reconfigure a Novell network (NetWare 3.xx or earlier) for packet drivers
  2232. so Kermit and Novell software can be used concurrently, use software from
  2233. Brigham Young University, available via anonymous ftp from dcsprod.byu.edu.
  2234. For further information, read the Kermit Distribution file MSABYU.HLP.
  2235.  
  2236. An Ethernet-simulation packet driver "shim" is available for systems using the
  2237. NDIS (Network Driver Interface Specification) program.    NDIS is frequently
  2238. used with LAN Manager networks, including AT&T's StarGROUP network and DEC's
  2239. Pathworks for DOS.  The interface program is named DIS_PKT and originated with
  2240. FTP Software Inc.  Their program DIS_PKT.GUP is available by anonymous ftp to
  2241. vax.ftp.com, and a research version DIS_PKT9.ZIP is available from Utah State
  2242. University by anonymous ftp to netlab2.usu.edu.     Instructions for configuring
  2243. Lan Manager to include DIS_PKT are included with the program.  (Also available
  2244. from watsun.cc.columbia.edu, in the packet-drivers.new directory and on the
  2245. MS-DOS Kermit diskette.)
  2246.  
  2247. Here is a setup with which one user reports success in using MS-DOS Kermit's
  2248. built-in TCP/IP support with LAN Manager and a Novell NE2000 Ethernet board:
  2249.  
  2250. CONFIG.SYS
  2251. ---------------------------
  2252. SHELL=C:\COMMAND.COM /P /E:1024
  2253. DEVICE=C:\WINDOWS\HIMEM.SYS
  2254. DEVICE=C:\WINDOWS\EMM386.EXE noems I=B000-B7FF i=e000-efff
  2255. DOS=HIGH,UMB
  2256. COUNTRY=61,,C:\DOS\COUNTRY.SYS
  2257. BUFFERS=13
  2258. FILES=50
  2259. STACKS=0,0
  2260. LASTDRIVE=Z
  2261. DEVICEHIGH=C:\DOS\ANSI.SYS
  2262. DEVICEHIGH=C:\WINDOWS\MOUSE.SYS
  2263. DEVICEHIGH=C:\LANMAN\DRIVERS\PROTMAN\PROTMAN.DOS /i:C:\LANMAN
  2264. DEVICEHIGH=C:\LANMAN\DRIVERS\ETHERNET\NE2000\NE2000.DOS
  2265. DEVICEHIGH=C:\KERMIT\DIS_PKT9.DOS
  2266.  
  2267. PROTOCOL.INI
  2268. ----------------------------
  2269. [PROTMAN]
  2270.   DRIVERNAME = PROTMAN$
  2271.   DYNAMIC = YES
  2272.   PRIORITY = NETBEUI
  2273.  
  2274. [PKTDRV]
  2275. ; This section added for kermit
  2276.   DRIVERNAME = PKTDRV$
  2277.   BINDINGS = NE2000_NIF
  2278.   INTVEC = 0x65
  2279.  
  2280. [NETBEUI_XIF]
  2281.   DRIVERNAME = NETBEUI$
  2282.   SESSIONS = 8
  2283.   NCBS = 12
  2284.   BINDINGS = "NE2000_NIF"
  2285.   LANABASE = 0
  2286.  
  2287. [NE2000_NIF]
  2288. ; protocol.ini section for the Novell NE2000 Card
  2289.   IOBASE = 0x300
  2290.   INTERRUPT = 5
  2291.   DRIVERNAME = MS2000$
  2292.  
  2293. Kermit's TCP/IP support does not work over the Harvard ODIPKT driver on a
  2294. Token Ring network because it requires Kermit to use Token Ring rather than
  2295. Ethernet frames (but it does work with ODIPKT over Ethernet).  See below about
  2296. the experimental new ODITRPKT (ODI-to-Packet-Driver-over-Token-Ring) shim.
  2297. Version 3.12 and later support ODI directly; ODIPKT (or ODITRPKT) are not
  2298. necessary except when using MS-DOS Kermit under Windows to make network
  2299. connections over an ODI driver.  Kermit's built-in ODI support does not work
  2300. from within Windows.
  2301.  
  2302.   To use Kermit's built-in TCP/IP support over an ODI driver
  2303.   from within Windows, you must:
  2304.  
  2305.     1. Run ODIPKT (or ODITRPKT) over your ODI driver, and:
  2306.     2. Run WINPKT over ODIPKT (or ODITRPKT) or else Lock Kermit in Memory.
  2307.  
  2308. Note that ODIPKT should be told to use a higher interrupt number (specify
  2309. in decimal, not hex!) than WINPKT.  For example:
  2310.  
  2311.    ODIPKT 0 97                (97 decimal = 61 hex)
  2312.    WINPKT 0x60 0x61
  2313.  
  2314. Do not use the "-w" (Windows) switch with the underlying packet driver,
  2315. if any!
  2316.  
  2317. Direct use of ODI drivers permits Kermit's TCP/IP to run with several kinds of
  2318. Ethernet frames: DIX/Blue-Book/Ethernet_II, 802.2, 802.2 with SNAP, and 802.3,
  2319. as well as with Token Ring, Arcnet, and PCLan broadband.  No extra protocol
  2320. "shim" is needed, but you must have the ODI drivers which come from Novell or
  2321. from your network board vendor.
  2322.  
  2323. The ODI interface will be tried if a Packet Driver is not found, and it can be
  2324. selected in preference to a packet driver by the command:
  2325.  
  2326.    SET TCP/IP PACKET-DRIVER-INTERRUPT ODI
  2327.  
  2328. where "ODI" replaces the interrupt number of a Packet Driver.
  2329.  
  2330. For ODI, the file NET.CFG should have the lines "Protocol IP etc" similar to
  2331. the example below:
  2332.  
  2333.     # File NET.CFG, example
  2334.     PB buffers=10
  2335.     show dots=on
  2336.  
  2337.     Link Support
  2338.         buffers 6 1514
  2339.         MemPool 2048
  2340.  
  2341.     Link Driver SMCPLUS
  2342.         Port  280 20
  2343.         Mem   000CA000 2000/10
  2344.         Int   7
  2345.         frame Ethernet_II
  2346.         Protocol IPX    8137    Ethernet_II
  2347.         Protocol IP    0800    Ethernet_II
  2348.         Protocol ARP    0806    Ethernet_II
  2349.         Protocol RARP    8035    Ethernet_II
  2350.  
  2351. To make TCP/IP connections, Kermit requires three "protocols", IP, ARP, and
  2352. optionally RARP as shown above.     The frame kinds can be anything the board
  2353. will support: Ethernet, Token Ring, Arcnet, all IEEE 802.2-based frames etc.
  2354. ODI will complain if the frame type cannot support these protocols.  Arcnet
  2355. uses different TYPE values, D4 for IP, D5 for ARP, and D6 for RARP, rather
  2356. than 0800 etc, as per RFC-1201.
  2357.  
  2358. Which board Kermit (or IPX or other application) will use if two or more
  2359. boards are available?  Although one would think the board could be selected by
  2360. placing the Protocol IP, etc, lines under the desired Link Driver section,
  2361. such is not really the case; those lines tell LSL the frame kind to associate
  2362. with the protocol (say IP) but not the board.  The frame lines are associated
  2363. with particular boards, however.  The default method for finding a board is
  2364. that the application chooses "the first board" offering a suitable frame,
  2365. regardless of whether or not the Protocol IP, etc, lines are present for that
  2366. board.  "First" refers not to the contents of NET.CFG but to the order in
  2367. which board drivers are loaded at DOS level.  So the indented protocol lines
  2368. tell ODI which frame a protocol needs, and a TYPE to use for recognizing
  2369. packets, but the lines do not identify a particular board.
  2370.  
  2371. To target a particular board a separate main section is used in NET.CFG.  The
  2372. section starts with the word Protocol against the left margin and has Bind
  2373. indented beneath it, like this -
  2374.  
  2375.     Protocol Kermit            Identifies Kermit section of NET.CFG
  2376.         bind SMCPLUS        Bind to SMCPLUS board driver
  2377.  
  2378. When a board name is used more than once then the alternative form is to use
  2379. a board number in place of the name:
  2380.  
  2381.     Protocol Kermit
  2382.         bind #2            bind to the board loaded second
  2383.  
  2384. Kermit considers the text in these sections to be case-insensitive.  The
  2385. #<digit> construction must not have a separation between the number sign (#)
  2386. and the digit.    The #<digit> case is normally used when two or more boards
  2387. share the same driver and thus are not distinguishable by name alone.
  2388.  
  2389. A sample STARTNET.BAT file might look like this:
  2390.  
  2391. @echo off            run quietly
  2392. c:\lsl >nul            LSL is always loaded before boards
  2393. c:\smcplus.com >nul        SMC/WD8003E board, the first
  2394. c:\exos.com >nul        EXOS-205T board, the second
  2395. rem c:\odinsup            Odinsup can coexist with Kermit
  2396. rem c:\odipkt 0 96        Odipkt can coexist with Kermit
  2397. c:\ipxodi >nul            IPX is always loaded after boards
  2398. rem echo Starting network...    may be needed to help some drivers
  2399. c:\bnetx ps=my-preferred-server > nul
  2400. rem (Packet Burst mode)    NETX loads after IPX
  2401. @echo on
  2402.  
  2403. If both EXOS and SMCPLUS boards offer frame Ethernet_II Kermit will choose the
  2404. first loaded board, SMCPLUS, in the absence of a "bind" command.  Putting the
  2405. section "Protocol Kermit, bind <board name or number>" anywhere in NET.CFG
  2406. selects a particular board for Kermit.    A complete NET.CFG file using two
  2407. boards is shown below and applies to both regular NetWare shells and the
  2408. newer VLM shells (but with minor changes to the no-board parts of things).
  2409.  
  2410. # File NET.CFG, an example with two boards
  2411. PB buffers=10
  2412. show dots=on
  2413. # all main sections must start in column 1, indent local material.
  2414.  
  2415. # Protocol "IPX" is for Novell's IPXODI
  2416. Protocol IPX
  2417.     Bind #1
  2418.  
  2419. # Protocol "Kermit" is for MS-DOS Kermit
  2420. Protocol KERMIT
  2421.     Bind EXOS
  2422.  
  2423. Link Support
  2424.     buffers 6 1514
  2425.     MemPool 2048
  2426.  
  2427. Link Driver exos
  2428.     Port  310 20
  2429.     Mem   000D0000 400
  2430.     Int   5
  2431.     frame Ethernet_II
  2432.     Protocol IPX    8137    Ethernet_II
  2433.     Protocol IP    0800    Ethernet_II
  2434.     Protocol ARP    0806    Ethernet_II
  2435.     Protocol RARP    8035    Ethernet_II
  2436.  
  2437. Link Driver SMCPLUS
  2438.     Port  280 20
  2439.     Mem   000CA000 2000/10
  2440.     Int   7
  2441.     frame Ethernet_II
  2442.     frame Ethernet_Snap
  2443.     Protocol IPX    8137    Ethernet_II
  2444.     Protocol IP    0800    Ethernet_II
  2445.     Protocol ARP    0806    Ethernet_II
  2446.     Protocol RARP    8035    Ethernet_II
  2447.  
  2448. # Protocol "TCPIP" is for Novell's Lan WorkPlace for DOS, not Kermit
  2449. Protocol TCPIP
  2450.     ip_address    129.123.1.99
  2451.     ip_router    129.123.1.254
  2452.     ip_netmask    255.255.255.0
  2453.     tcp_sockets    8
  2454.     udp_sockets    8
  2455.     raw_sockets    1
  2456.     nb_sessions    4
  2457.     nb_commands    8
  2458.     nb_adapter    0
  2459.     nb_domain    usu.edu
  2460.  
  2461. Link Driver SLIP_PPP
  2462.     DIRECT    YES
  2463.     BAUD     9600
  2464.     OPEN    ACTIVE
  2465.     PCOMP    YES
  2466.     ACCOMP    YES
  2467.     PORT    3F8
  2468.     INT    4
  2469.     FRAME    SLIP
  2470.     Protocol    IP    0800    SLIP
  2471.  
  2472. MAKING NOVELL SLIP_PPP ODI CONNECTIONS
  2473.  
  2474. Novell's SLIP_PPP ODI driver is a combined serial port SLIP and PPP module
  2475. which is part of the Lan WorkPlace for DOS (LWP) product.  Kermit requires
  2476. the line:
  2477.  
  2478.     Protocol    IP    0800    SLIP
  2479.  
  2480. to be included with the driver.     Note that Kermit can temporarily steal the
  2481. serial port hardware from this driver to dial the telephone and log into a
  2482. host; SLIP/PPP communications should resume normally after Kermit is set to
  2483. the TCP/IP pathway.  Here is a STARTODI.BAT and NET.CFG example with SLIP_PPP
  2484. carrying the TCP/IP traffic.  File STARTODI.BAT:
  2485.  
  2486. @echo off
  2487. REM - Load LSL first
  2488. c:\lsl.com
  2489. REM - Then load your network board driver
  2490. c:\ne2000.com
  2491. REM - Then load the Novell SLIP_PPP driver
  2492. c:\slip_ppp.com
  2493. REM - Then the regular Novell IPX driver and network shell, for example:
  2494. set name=olga
  2495. c:\ipxodi /d
  2496. c:\bnetx.exe ps=name-of-novell-server
  2497. @echo on
  2498.  
  2499. File NET.CFG:
  2500.  
  2501. # File NET.CFG
  2502. PB buffers=6
  2503. show dots=on
  2504. signature level=0
  2505.  
  2506. protocol KERMIT
  2507.     bind SLIP_PPP
  2508. #    bind ne2000
  2509.  
  2510. Link Support
  2511.     Buffers    7 1500
  2512.     MemPool    2048
  2513.  
  2514. Link Driver NE2000
  2515.     Port  360
  2516.     Int   5
  2517.     Frame    Ethernet_II     
  2518.     Protocol    IPX    8137    Ethernet_II     
  2519.     Protocol    IP    0800    Ethernet_II
  2520.     Protocol    ARP    0806    Ethernet_II
  2521.     Protocol    RARP    8035    Ethernet_II
  2522.  
  2523. Link Driver SLIP_PPP
  2524.     DIRECT    YES
  2525.     BAUD     9600
  2526.     OPEN    ACTIVE
  2527. #    TCPIPCOMP    VJ
  2528.     PCOMP    YES
  2529.     ACCOMP    YES
  2530.     PORT    3F8
  2531.     INT    4
  2532.     FRAME    SLIP
  2533. #    FRAME    PPP
  2534.     Protocol    IP    0800    SLIP
  2535.  
  2536. # Below is for Novell's Lan WorkPlace for DOS
  2537. Protocol TCPIP
  2538.     PATH SCRIPT    d:\lwp41\net\SCRIPT
  2539.     PATH PROFILE    d:\lwp41\net\PROFILE
  2540.     PATH LWP_CFG    d:\lwp41\net\HSTACC
  2541.     PATH TCP_CFG    d:\lwp41\net\TCP
  2542.     ip_router    129.123.100.254
  2543.     ip_netmask    255.255.255.0
  2544.     ip_address    129.123.100.5
  2545.     tcp_sockets    16
  2546.     udp_sockets    8
  2547.     raw_sockets    1
  2548. #    nb_sessions    4
  2549. #    nb_commands    8
  2550. #    nb_adapter    0
  2551. #    nb_domain    usu.edu
  2552.     Bind        slip_ppp
  2553.  
  2554. Kermit is told to bind to SLIP_PPP rather than to the active NE2000 board
  2555. because the indented minor clause Bind SLIP_PPP under the Protocol Kermit
  2556. major heading tells Kermit which MLID (board driver) to use.  Link Driver
  2557. SLIP_PPP has indented Kermit line "Protocol IP 0800 SLIP" so Kermit can use
  2558. the driver; ARP and RARP lines could have been added with no effect (no ARP on
  2559. a point-to-point link).     LWP/DOS does not need this protocol line because it
  2560. tends to generate them itself.
  2561.  
  2562. Either SLIP or PPP can be used by setting the Frame Type and using the same
  2563. frame type in the indented protocol line below it.  No NetBios support was
  2564. wanted from LWP/DOS so that section was commented out.
  2565.  
  2566. STARTODI.BAT loads SLIP_PPP but nothing is sent out immediately as there is
  2567. not yet any connection.     To make the connection, start Kermit, SET PORT COM1
  2568. (or whatever), set the desired speed and flow control (but not Xon/Xoff!),
  2569. dial the phone and log into the host or server, then start SLIP or PPP there
  2570. (Novell provides a DIALER program with SLIP_PPP which can set the port speed
  2571. and dial a phone number via rudimentary means; Kermit is much more flexible
  2572. about this).  In all this, Kermit is grabbing the serial port from SLIP_PPP,
  2573. using it, and then returning it when done.  Kermit's TELNET will find an ODI
  2574. driver, SLIP_PPP, adjust itself accordingly, and SLIP-style packets flow back
  2575. and forth.  (If Kermit doesn't find the ODI driver, tell it to SET TCP
  2576. PACKET-DRIVER ODI.)
  2577.  
  2578. ODI-TO-PACKET-DRIVER SHIMS
  2579.  
  2580. Prior to version 3.12, the only way to make TCP/IP connections over ODI with
  2581. MS-DOS Kermit was through the ODIPKT shim, which converts between the ODI
  2582. interface and the packet-driver interface.  ODIPKT is no longer necessary,
  2583. except under Windows (because there is, as yet, no equivalent of WINPKT for
  2584. ODI drivers).
  2585.  
  2586. There is an ODI to Packet Driver shim available for Token Ring cards which can
  2587. work with Kermit (and WINPKT).    The current version is still in Beta as of
  2588. this writing (May 93).    ODITRPKT is available via FTP from Oklahoma State
  2589. University host datacomm.ucc.okstate.edu as pub/oditrpkt/beta9.zip.  A copy is
  2590. also available in packet-drivers/new on watsun.cc.columbia.edu, but it might
  2591. not be as up-to-date as the one at the source.
  2592.  
  2593. Here is a NET.CFG example using ODITRPKT:
  2594.  
  2595. LINK DRIVER TOKEN
  2596.      INT 3
  2597.      FRAME TOKEN-RING
  2598.      FRAME TOKEN-RING_SNAP
  2599.      PROTOCOL IPX  E0    TOKEN-RING
  2600.      Protocol IP   0800 TOKEN-RING_SNAP
  2601.      Protocol ARP  0806 TOKEN-RING_SNAP
  2602.      Protocol RARP 8035 TOKEN-RING_SNAP
  2603.  
  2604. And here is one using Arcnet:
  2605.  
  2606. LINK DRIVER SMCARCWS
  2607.      INT 3
  2608.      PORT 300
  2609.      MEM D0000
  2610.      Frame NOVELL_RX-NET
  2611.      Protocol IPX  FA NOVELL_RX-NET
  2612.      Protocol IP   D4 NOVELL_RX-NET
  2613.      Protocol ARP  D5 NOVELL_RX-NET
  2614.      Protocol RARP D6 NOVELL_RX-NET
  2615.  
  2616. At the moment there is no Windows support for Kermit over ODI.    Instead we
  2617. recommend using shim ODIPKT or ODITRPKT over ODI, followed by WINPKT over that
  2618. to employ a Packet Driver interface into Windows.
  2619.  
  2620. = TCP/IP BUGS AND LIMITATIONS
  2621.  
  2622. Linemode TELNET is not supported.  This is the mode in which the TELNET client
  2623. buffers up "lines" and then sends them all at once (with the TCP PUSH-bit set)
  2624. when the user hits the Enter key.  This has been observed to cause problems
  2625. with only one TELNET server so far: the UNISYS 2200 TIP transaction processing
  2626. system.
  2627.  
  2628. Versions 3.11 through 3.13 neglect to respond to DO SGA bids from the TELNET
  2629. server.  This has been observed to cause a problem in only one instance, namely
  2630. with the Apertus Technologies Telnet Gateway Service (SCHOLAR) front-end to
  2631. the NOTIS libary system.  This problem will be fixed in version 3.14.
  2632.  
  2633. Domain name resolution might not work when you give a nickname instead of a
  2634. complete host name in the SET PORT TCP/IP command and Kermit transforms the
  2635. nickname into the desired complete host name by combining it with your TCP/IP
  2636. DOMAIN.  Kermit does not use a special Hosts file to relate nicknames to
  2637. complete host names.  Workarounds: use a complete hostname, an IP host number,
  2638. or set your TCP/IP DOMAIN correctly.  It should be obvious that Domain Name
  2639. Servers are specified by their IP number rather than name.
  2640.  
  2641. Version 3.13 supports multiple gateways on the local network.  Choosing the
  2642. incorrect gateway normally results in that gateway sending an ICMP Redirect
  2643. message to Kermit indicating the preferred gateway, and Kermit displays such
  2644. messages.  Version 3.12 and earlier did not implement ICMP Redirect actions.
  2645.  
  2646. Kermit's TCP/IP gateway must be on your physical network.
  2647.  
  2648. Kermit is not an IP router handling routing traffic broadcast on the wire.  It
  2649. does not listen to RIP or similar.  Instead it depends upon router to do that
  2650. and then tell Kermit what to do.  Kermit computes whether an IP destination is
  2651. on the local network; if it isn't Kermit uses the first IP gateway as the
  2652. local target for ARPing and further relaying.  It is up to that gateway to
  2653. either accept the traffic or to issue an ICMP Redirect packet indicating
  2654. another gateway to use for this particular connection.
  2655.  
  2656. For IBM mainframe linemode TELNET connections, automatic appearance of the
  2657. login banner might not work.  Type a carriage return (Enter) to get the login
  2658. banner.     Local-echo and linemode operation are negotiated automatically.
  2659.  
  2660. BOOTP requests are handled correctly within the local network, and have been
  2661. tested successfully through Novell's BOOTP forwarder NLM and through Cisco
  2662. routers with software version 8.2.7.  In the SET TCP/IP ADDRESS command, the
  2663. words BOOTP and RARP must be spelled out in full.  Version 3.11 and 3.12
  2664. support original RFC951 and 1048 BOOTP protocol, and version 3.13 adds support
  2665. for downloading of the PC's full host (domain) name as specified in RFC1395.
  2666. See MSKERM.HLP (KERMIT.HLP) for details.
  2667.  
  2668. EXIT from Kermit closes your TCP/IP session (just like HANGUP).     PUSHing or
  2669. running DOS commands from Kermit keeps it open.     In version 3.12 and later,
  2670. EXITing while a session is active causes a warning / confirmation message to
  2671. appear so you can change your mind.
  2672.  
  2673. Version 3.11 of MS-DOS Kermit uses only the TELNET port (23) for SET PORT TCP
  2674. connections.  Version 3.12 and later allow you to specify any desired port
  2675. (except 25) in the SET PORT TCP command, after the host name or address.
  2676.  
  2677. MS-DOS Kermit honors TELNET protocol negotiations, including terminal type and
  2678. ECHO/SGA.  Version 3.11 always sends "VT100" as its terminal type; later
  2679. versions send MS-DOS Kermit's active terminal type or allows the user to
  2680. create an override string with command SET TCP/IP TELNET-TERM-TYPE.
  2681.  
  2682. Not supported: FTP, TFTP, automatic setting of PC date/time from network, 3270
  2683. emulation (tn3270), etc.  There is no PING command, but MS-DOS Kermit responds
  2684. when PINGed and when probed by Traceoute.  The keyboard verb \Knethold does
  2685. nothing.  Multiple simultaneous TCP/IP sessions are supported in version 3.13;
  2686. see MSKERM.HLP (KERMIT.HLP) for details.
  2687.  
  2688. For TCP/IP connections to IBM mainframes in full screen 3270 mode, you need an
  2689. intermediate host or device to do the 3270/ASCII terminal conversion.  Typical
  2690. setup is a TCP/IP terminal server with its serial lines connected to a protocol
  2691. converter (e.g. IBM 7171), a UNIX host that has tn3270 available, or a terminal
  2692. server (like Cisco) that does 3270 terminal emulation.    To transfer files with
  2693. an IBM mainframe, you might have to tell MS-DOS Kermit to SET PARITY SPACE.
  2694.  
  2695. Version 3.12 and later support inbound connections to MS-DOS Kermit.  Inbound
  2696. TELNET connections do not copy DOS screens, etc, like Carbon Copy and PC
  2697. Anywhere and the free telnetd program of Erick Engelke; a Kermit-to-Kermit
  2698. connection is made instead.  To configure MS-DOS Kermit to be a TCP/IP server,
  2699. give the following command:
  2700.  
  2701.   SET PORT TCP * [ <port> ]
  2702.   SET SERVER LOGIN <username> [ <password> ]  ; (recommended but not required)
  2703.   SERVER
  2704.  
  2705. Use asterisk instead of an IP name or address, followed optionally by a TCP
  2706. port number (the default is 23 = TELNET), and then enter server mode.  Anybody
  2707. who TELNETs to your PC will see a brief screen message telling them to escape
  2708. back to their local Kermit prompt and issue commands from there, for example:
  2709.  
  2710.   REMOTE LOGIN <usename> <password>
  2711.   REMOTE DIRECTORY
  2712.   GET OOFA.TXT
  2713.  
  2714. Kermit's TCP/IP support cannot be used simultaneously with PC NFS because both
  2715. applications want to register use of ARP and IP with the packet driver, but
  2716. each protocol can only be assigned to one application.  This is only one
  2717. particular case of the more general rule:
  2718.  
  2719.     Only one TCP/IP based application can use a LAN adapter at once.
  2720.  
  2721. which also applies to DesqView/X and other TCP/IP products for the PC.
  2722.  
  2723. (There is a program called PKTMUX that, under some conditions, might allow
  2724. coexistence of multiple TCP/IP applications, but it is risky and not
  2725. recommended.)  To make MS-DOS Kermit work simultaneously with PC-NFS, Kermit
  2726. would have to be linked with the proprietary socket-library routines, which we
  2727. cannot do.  If you need to have NFS active simultaneously with an MS-DOS
  2728. Kermit TCP/IP connection, follow the hints given above, or use a different NFS
  2729. package that also works with Kermit such as FTP Software, Novell LWP, or Beame
  2730. and Whiteside.
  2731.  
  2732. The SET TCP/IP and SET PORT TCP/IP commands only return failure codes if there
  2733. is a parse error.  The connection is not opened until the first attempt to
  2734. communicate with the remote host: CONNECT, PAUSE, OUTPUT, etc.    While
  2735. connection establishment is in progress, you can't interrupt the program with
  2736. Ctrl-C.     Use IF SUCCESS / FAILURE after PAUSE 0 to check if the connection
  2737. is open, for example:
  2738.  
  2739.   DEFINE TELNET SET PORT TCP \%1 \%2, PAUSE 0, IF SUCCESS CONNECT
  2740.  
  2741. The second variable above is for the optional TCP port number in version 3.12
  2742. and later.
  2743.  
  2744. TCP/IP performance hints: Set your Kermit packet size to 500 or larger to
  2745. achieve most data sent per network packet. A convenient setting is SET 
  2746. RECEIVE PACKET 1000, SET WINDOW 4, resulting in four 1000-byte packets in a 
  2747. window.     SET FLOW NONE lets TCP/IP do the flow control and eliminates Kermit's
  2748. need to check for Xon/Xoff.  In most situations beyond the local network 
  2749. performance will be limited by the long distance lines rather than by the PC.
  2750.  
  2751. End of MSKERM.BWR / KERMIT.BWR
  2752.