home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / mskermit / mskerm.bwr < prev    next >
Text File  |  2020-01-01  |  119KB  |  2,436 lines

  1. File MSKERM.BWR           MS-DOS KERMIT 3.14 "BEWARE FILE"              December 1995
  2.  
  3.                BUGS, LIMITATIONS, HINTS & TIPS
  4.  
  5. This file last updated: Sat Dec  9 10:44:31 1995
  6.  
  7.   IMPORTANT: MS-DOS Kermit 3.14 dated 12 January 1995 had several serious
  8.   bugs; the cursor position report was incorrect, wild cursor addressing could
  9.   cause memory corruption, and (worst of all) the PATCH command didn't work.
  10.   These bugs were caught and corrected before the 3.14 diskettes were
  11.   duplicated.  The fixed version is still called 3.14, but dated January 18.
  12.   All subsequent bugs are corrected by patches to the Jan 18 release.
  13.  
  14.   BUT... A nonpatchable bug regarding TCP/IP Address Resolution Protocol (ARP)
  15.   was discovered somewhat later.  The only way it could be fixed was by
  16.   issuing new EXE files.  The EXEs with this fix are dated May 21, 1995.
  17.  
  18. This file discusses common problems installing or using MS-DOS Kermit and
  19. presents solutions or workarounds.  It applies to MS-DOS Kermit 3.14 for the
  20. IBM PC family and compatibles.  See KERMIT.HLP (MSKERM.HLP) for copyright
  21. information, terms and conditions, and a summary of MS-DOS Kermit commands.
  22.  
  23. CONTENTS:
  24.  
  25.   (0) OUR MOST FREQUENTLY ASKED QUESTION
  26.   (1) PATCHES
  27.   (2) INCOMPATIBILITIES BETWEEN MS-DOS KERMIT 3.14 AND EARLIER VERSIONS
  28.   (3) WORDPERFECT
  29.   (4) MICROSOFT WINDOWS
  30.   (5) WINDOWS FOR WORKGROUPS
  31.   (6) TROUBLESHOOTING MS-DOS KERMIT SERIAL PORT AND MODEM PROBLEMS
  32.   (6.1) FREQUENTLY ASKED QUESTIONS
  33.   (6.2) HOW A PHYSICAL COMMUNICATION PORT IS ASSOCIATED WITH A DOS COMn DEVICE
  34.   (6.3) SPECIFYING THE PORT ADDRESS
  35.   (6.4) INTERRUPTS AND IRQS
  36.   (6.5) MODEM PROBLEMS
  37.   (7) DEVICE INTERRUPT CONFLICTS AND OTHER HARDWARE CONSIDERATIONS
  38.   (8) MS-DOS 5.0 AND 6.x
  39.   (9) MICROSOFT WINDOWS, DESQVIEW, OS/2, WINDOWS NT, ETC.
  40.   (9.1) OS/2
  41.   (9.2) MICROSOFT WINDOWS
  42.   (9.3) DESQVIEW AND DESQVIEW/X
  43.   (9.4) WINDOWS NT
  44.  (10) VIDEO PROBLEMS
  45.  (11) SERIAL COMMUNICATIONS
  46.  (12) TERMINAL EMULATION
  47.  (12.1) KEYBOARDS AND KEYBOARD DRIVERS
  48.  (12.2) VT TERMINAL EMULATION
  49.  (12.3) DG TERMINAL EMULATION
  50.  (12.4) CHANGING SCREEN DIMENSIONS
  51.  (12.5) 132-COLUMN MODE
  52.  (12.6) GRAPHICS TERMINAL EMULATION
  53.  (13) PRINTER SUPPORT
  54.  (14) INTERNATIONAL CHARACTER SETS
  55.  (15) COMMAND PROCESSING
  56.  (16) KEY MAPPING
  57.  (17) FILE TRANSFER
  58.  (17.1) PERFORMANCE
  59.  (17.2) HARDWARE FLOW CONTROL PROBLEMS
  60.  (17.3) MISCELLANEOUS FILE TRANSFER HINTS AND TIPS
  61.  (18) SCRIPT PROGRAMMING
  62.  (19) MEMORY MANAGEMENT
  63.  (20) INTERACTIONS WITH DOS
  64.  (21) NETWORKS
  65.  (21.1) NETBIOS STATION-TO-STATION CONNECTIONS
  66.  (21.2) TCP/IP SUPPORT
  67.  
  68. The user manual for MS-DOS Kermit 3.14 is the book "Using MS-DOS Kermit",
  69. Second Edition, by Christine M. Gianone, published by Digital Press /
  70. Butterworth-Heinemann, Woburn, MA, 1992, 345 pages, ISBN 1-55558-082-3.
  71. Available in book and computer stores, or order from Columbia University at
  72. +1 212 854-3703.  Changes since the book was published are described in
  73. KERMIT.UPD (MSKERM.UPD).
  74.  
  75. Please consult "Using MS-DOS Kermit" and this file before contacting Kermit
  76. technical support staff.  Report problems via e-mail to kermit@columbia.edu or
  77. call +1 212 854-5126, or by Fax to +1 212 663-8202, or write to Kermit
  78. Distribution, Columbia University Academic Information Systems, 612 West 115th
  79. Street, New York, NY 10025, USA.
  80.  
  81. Also, please read the installation instructions in the top-level READ.ME file
  82. on the Kermit diskette.
  83.  
  84. (0) OUR MOST FREQUENTLY ASKED QUESTION
  85.  
  86.   "Why are Kermit file transfers so slow?"
  87.  
  88. Today's Kermit protocol, when properly implemented -- as it is in MS-DOS
  89. Kermit, C-Kermit, IBM Mainframe Kermit from Columbia University's Kermit
  90. software collection -- can transfer files very efficiently if you give it a
  91. few commands to override its deliberately conservative (pessimistic) initial
  92. (default) protocol settings.  Our priority is to make transfers work, even
  93. under adverse conditions.  Other protocols are tuned to make transfers fast,
  94. but when conditions are poor (noisy or non-transparent connections, buffering
  95. or flow control problems, etc), these protocols often don't work at all.
  96.  
  97. See Section 17, File Transfer, for our Secret Formula for Fast Kermit File
  98. Transfers.  For a detailed discussion of Kermit file transfer performance,
  99. please read the file PERFORM\PERFORM.DOC on the Kermit diskette.
  100.  
  101. (1) PATCHES
  102.  
  103.  Patch file     For executable
  104.  
  105.   MSR314.PCH     KERMIT.EXE      Full version
  106.   MSRM314.PCH    KERMITE.EXE     Medium version
  107.   MSRL314.PCH    KERLITE.EXE     Lite version
  108.   MSRP314.PCH    KERMIT_P.EXE    Full version, Portuguese legends
  109.  
  110. The patches are as follows:
  111.  
  112.  1. Optional Orchid Designer Professional VGA board video-mode patch.
  113.     Allows patching in the appropriate video mode, since different models
  114.     use different modes, but identify themselves the same way to Kermit.
  115.  
  116.  2. Fix for file names given on the command line in the -F option
  117.     (alternate initialization file) not always being parsed correctly.
  118.  
  119.  3. VT220/320 terminal emulator patch for correctly recognizing OSC and
  120.     PM sequences.  Without this patch, such sequences (which are rarely
  121.     used) could cause Kermit to hang until reset.
  122.  
  123.  4. Patch to prevent MS-DOS Kermit from improperly encoding its response
  124.     to the A packet.  The most notable symptom was failure to properly
  125.     receive RESENDs.
  126.  
  127.  5. Patch to the READ command to prevent it from improperly treating "-"
  128.     at the end of a line as a continuation character.
  129.  
  130.  6. Patch for TES networking: preserve TES LAT ID around restarts.
  131.  
  132.  7. Optional patch for Hebrew-model VT100 terminal emulation.  Described
  133.     below.
  134.  
  135.  8. Patch to make the MAIL command once again work properly when sending
  136.     multiple files.  Without this patch, the MAIL command only works for
  137.     one file; e.g. "mail foo.*" would send all foo.* files, but only the
  138.     first one would be mailed; the rest would disappear.
  139.  
  140. THE HEBREW PATCH
  141.  
  142. Certain applications are hardcoded for the DEC Hebrew-model VT100
  143. terminal, and can't use Kermit's VT420-level Hebrew features.
  144. Reportedly, MS-DOS Kermit 3.14's interpretation of the Hebrew VT100 was
  145. incorrect.  Diagnosis: ESC ) 1 selects the "Alternate ROM" character set.
  146. When this is Hebrew, it also has the side effect of switching writing
  147. direction to right-to-left, but Kermit didn't do this.  ESC ) B switches
  148. back to ASCII, and resets screen writing to left-to-right.  Cure: Enable
  149. Patch 7 but uncommenting it (i.e. remove the semicolon from the front of
  150. each line).  Do NOT enable patch 7 if you do not require VT100-level
  151. Hebrew, because other Alternate ROMs do not have this same side effect.
  152. In the next release, we will add a SET COMMAND to control the Alternate
  153. ROM side effects.
  154.  
  155. Patch 7 is available only for KERMIT.EXE because it is a difficult patch
  156. to create. If there is a strong need then a patch can be created for
  157. Portuguese and Medium versions.
  158.  
  159. PROBLEM RECEIVING RESENDS
  160.  
  161. If MS-DOS Kermit has its FILE COLLISION set to UPDATE, it won't be able to
  162. receive RESENDs as advertised.  Instead, it will refuse the RESEND with
  163. "Refused: Date".  This problem is too complex to be patched, and so a
  164. workaround must be used, one of the following:
  165.  
  166.  . MS-DOS Kermit's FILE COLLISION should be set to OVERWRITE when
  167.    receiving RESENDs.  Or:
  168.  
  169.  . Tell MS-DOS Kermit or the other Kermit to SET ATTRIBUTE DATE OFF when
  170.    RESENDing.
  171.  
  172. For example, here is a macro that can be used in place of RESEND in
  173. C-Kermit or MS-DOS Kermit to get around this problem:
  174.  
  175.   define XRESEND set attr date off, -
  176.     resend \%1 \%2, -
  177.     assign \%9 \v(status), -
  178.     set attr date on, -
  179.     end \%9
  180.  
  181. A fix will appear in the next release.
  182.  
  183. (2) INCOMPATIBILITIES BETWEEN MS-DOS KERMIT 3.14 AND EARLIER VERSIONS
  184.  
  185.  1. In version 3.13, the escape sequence that invoked the TERMINALR/S macros
  186.     was changed to control screen writing direction (details in KERMIT.UPD),
  187.     for compatibility with newer VT terminals.  Any host software that sent
  188.     the TERMINALR/S sequences will need to be converted to send APC sequences.
  189.     See KERMIT.UPD and the WordPerfect section of this file.
  190.  
  191.  2. STATUS command removed.  Use the SHOW command to display categories of
  192.     settings: SHOW TERMINAL, SHOW COMMUNICATIONS, SHOW PROTOCOL, etc; v3.13.
  193.  
  194.  3. STATISTICS, which displays file transfer statistics, has been added as a
  195.     top-level command, for compatibility with C-Kermit; v3.13.
  196.  
  197.  4. Alt-n was previously bound by default to the \Knethold verb.  It is now
  198.     bound to the new \Knextsession verb.  \Knethold moved to Alt-z.  v3.13.
  199.  
  200.  5. \m(macroname) behaves differently in 3.14; see section 18.
  201.  
  202.  6. SET TAKE-ECHO is now SET TAKE ECHO, to allow for other SET TAKE commands.
  203.  
  204.  7. Status line format changed in 3.14.
  205.  
  206.  8. Semicolon must be the first character on the line or else be preceded
  207.     by a space or tab to be treated as a comment introducer; v3.14.
  208.  
  209. (3) WORDPERFECT
  210.  
  211. WordPerfect 6.0 comes with a fax TSR, FAXDIR.EXE, which, reportedly, fiddles
  212. with the communication port even when other communication applications (such
  213. as Kermit) are running. If you experience hangups, changes of interface speed,
  214. etc, while running Kermit with FAXDIR loaded, remove FAXDIR.
  215.  
  216. The WordPerfect Office Shell is not a true multitasking environment.  It
  217. simply brings the "hot-key'd" program to the foreground and deactivates the
  218. other programs.  Thus, you can't use it to accomplish Kermit file transfers in
  219. the "background" or to put Kermit TCP/IP connections on hold.
  220.  
  221. To make host-based UNIX WordPerfect work with MS-DOS Kermit 3.13 or later,
  222. follow these directions (courtesy of Chris Thompson at Vanderbilt University;
  223. presumably similar steps can be followed for the VMS version):
  224.  
  225. . Go into the directory where the terminal definitions are stored (in my case
  226.   of WP 5.1 for AIX, it was /usr/wp51/shlib), and execute "wpterm" (it usually
  227.   requires you to be superuser).
  228.  
  229. . A screen containing all the terminal definitions will appear.     Highlight the
  230.   current Kermit terminal definition and hit Create.
  231.  
  232. . It will ask "Model new definition after Kermit?"  Answer yes.
  233.  
  234. . It will then ask for a new name for your new terminal definition.  Call it
  235.   something like KERMIT314.
  236.    
  237. . At the bottom of the screen, several options will appear.  Choose 
  238.   Terminal Control Characters.  It will then bring up a screen with the
  239.   different initialization strings and their values.  The first four items are
  240.   the ones that need altering (Terminal Initialization, Terminal Reset, Quick
  241.   Initialization, and Quick Reset).  Delete "[27][?34h" or "[27][?34l" (for
  242.   initialization and reset, respectively) from the string and replace it with
  243.   "[27]_take \kermit\keyboard\wp_unix.ini[27]\" or "[27]_set key clear[27]\",
  244.   leaving the rest of the string intact.
  245.    
  246. . Be sure to change your WPTERM environment variable if you decided to create
  247.   a definition with a different name.
  248.  
  249. (4) MICROSOFT WINDOWS
  250.  
  251. MS-DOS Kermit is the recommended Kermit software for Windows.  Follow the
  252. installation instructions in the READ.ME file.  Kermit will probably run
  253. slower under Windows than under DOS because Windows has higher overhead.
  254. Watch out for interrupt and memory conflicts, etc.  To improve Kermit's
  255. performance under Windows, try any or all of the following:
  256.  
  257. 1. Use the PIF editor to raise Kermit's priority in the KERMIT.PIF file.  This
  258.    will slow down any other active applications while Kermit is running.
  259.  
  260. 2. Use the PIF editor to lock Kermit in memory.     This will also interfere with
  261.    other applications, but it eliminates the chance of Kermit being swapped
  262.    out when characters arrive on the communications device, which could
  263.    otherwise be lost while Windows swaps Kermit back in to process them.
  264.  
  265. 3. Make sure your serial communication (COM) device or internal modem has a
  266.    16550A buffered UART.  This reduces the number of interrupts that must be
  267.    serviced (slowly) by Windows before Kermit gets to see them.
  268.  
  269. 4. In the "[386Enh]" section of SYSTEM.INI, look for:
  270.  
  271.      COM1Irq=4
  272.      COM1Base=03F8
  273.      COM2Irq=3
  274.      COM2Base=02F8
  275.      etc.
  276.  
  277.    For any COM port that really has a 16550A buffered UART, add a line like:
  278.  
  279.       COM1FIFO=1
  280.  
  281.    and correct the addresses and IRQs if they are wrong.  Also you might
  282.    want to investigate other COMxBlah parameters, such as COMxTxSize,
  283.    COMxRxSize, COMxBuffer, COMBoostTime, etc.
  284.  
  285. 5. Install an alternative communication port driver, such as the WFXCOMM
  286.    driver that comes with WinFax PRO, Delrina Technology Inc, or TurboCom/2
  287.    from Pacific Commware (we do not necessarily recommend any of these, and
  288.    do not provide support for them, but we have heard reports that they
  289.    improve performance).
  290.  
  291. 6. If you want to "minimize" Kermit while it is running, e.g. for "background"
  292.    file transfers, be sure to allocat background time for it in the KERMIT.PIF
  293.    file.  Even then, Kermit (and all other tasks) are at the mercy of other
  294.    applications that might not give up their shares of the CPU.
  295.  
  296. To avoid memory conflicts, don't let Windows choose its own memory management
  297. layout.  See section (19).
  298.  
  299. Messages like "This application has violated system integrity due to execution
  300. of an invalid instruction and will be terminated" can occur if the expanded
  301. memory page frame was allowed to overlap another important piece of memory.
  302. Workaround: Tell DOS *and* Windows where to locate the 64KB expanded memory
  303. page frame (E000 is typical, see section 19).
  304.  
  305. Reportedly, "AfterDark version 3.0 for Windows seems to have some compatiblity
  306. problems with *any* DOS based session (including MS-DOS Kermit).  The symptoms
  307. are random 'Unexepected protection violations' and device conflicts.  My
  308. *unofficial* fix (after lots of experimenting) is to go into the AD3.0 control
  309. panel and turn OFF the 'Enable screen saving in DOS windows' box (in the
  310. advanced options).  AD2.0 works fine."
  311.  
  312. Don't use SMARTDRIVE -- it turns off CPU recognition of interrupts while
  313. flushing disk buffers, causing other applications, like Kermit, not to receive
  314. them, therefore resulting in loss of data.
  315.  
  316. (5) WINDOWS FOR WORKGROUPS
  317.  
  318. See the section on this in the file NETWORKS\SETUP.DOC.
  319.  
  320. (6) TROUBLESHOOTING MS-DOS KERMIT SERIAL PORT AND MODEM PROBLEMS
  321.  
  322.   "Why can't MS-DOS Kermit find my COM3 or COM4 port?"
  323.   "Why can Kermit send characters to my COM port, but not read them?"
  324.   "Why doesn't Kermit work with my internal modem?"
  325.  
  326. Rule out the obvious: Is everything connected and turned on?  Did you
  327. give a SET PORT command for the right device, and did you give it BEFORE any
  328. other device-related commands, such as SET SPEED, PARITY, and FLOW?  Remember,
  329. port-related settings apply to the port that was selected in the most recent
  330. SET PORT command, so a proper sequence might be:
  331.  
  332.   SET PORT COM2        ; First select the port
  333.   SET SPEED 19200   ; Then set its speed
  334.   SET PARITY EVEN   ; and other parameters for this port...
  335.   SET FLOW RTS/CTS
  336.   SET LOCAL-ECHO ON
  337.  
  338. If you purchased an internal modem (or add-on UART, e.g. a buffered UART to
  339. replace a non-buffered one) and installed it as COMx (e.g. COM2) on a PC that
  340. already had a COMx built into the motherboard, you have to go into the PCs
  341. hardware setup screen to disable the pre-existing built-in COM port.
  342.  
  343. Before giving the SET FLOW RTS/CTS command, be sure the current serial port is
  344. receiving the CTS signal -- use SHOW MODEM to check.  If not, Kermit will hang
  345. for 10-15 seconds waiting for CTS to come on every time you type a character.
  346.  
  347. Each of these parameters is remembered for each port, so switching ports (e.g.
  348. SET PORT COM1 after you have given the above sequence of commands) changes
  349. all these parameters to their previous (or default) values for the port you
  350. have switched to.  To see communication parameters for the current port:
  351.  
  352.   SHOW COMMUNICATIONS
  353.  
  354. Check them carefully to be sure they are what you intended.
  355.  
  356. If you are experiencing blank screens, but the cursor is moving, you probably
  357. have accidently set your terminal-emulation foreground and background colors
  358. to be the same.  In some cases, even when they are different, they might come
  359. out the same -- for example, when you have a monochrome monitor attached to
  360. a color adapter.  SHOW TERMINAL, SET TERMINAL COLOR.
  361.  
  362. (6.1) FREQUENTLY ASKED QUESTIONS
  363.  
  364. Q: When I give the DIAL command, it says "Please turn on or connect your
  365.    modem", but my modem is turned on and connected.
  366.  
  367. A: Here are the most common reasons for this:
  368.  
  369.    1. You did not SET PORT to the same port that the modem is connected to.
  370.       Kermit uses COM1 unless you say otherwise.  If your modem is on (say)
  371.       COM2, then SET PORT 2 before giving the DIAL command.
  372.  
  373.    2. You are not using an appropriate dialing script for your modem.
  374.       See MODEMS\READ.ME on the Kermit diskette.
  375.  
  376.    You can always dial manually by CONNECTing to the modem and typing
  377.    modem commands (like ATDT7654321) directly at it.
  378.  
  379. Q: MS-DOS Kermit only supports COM1 through COM4.  But I have a specialized
  380.    communications board that has additional ports on it, and I want to use
  381.    Kermit with COM8.
  382.  
  383. A: The trick is to tell Kermit that it is COM1, 2, 3, or 4, and then tell
  384.    Kermit its address and IRQ (more about addresses and IRQs below).  For
  385.    example, suppose your COM8 is at address 2e8 (hex) using IRQ 5; you would
  386.    tell Kermit to "set com4 \x2e8 5" and then "set port 4".  Or if you have a
  387.    Fossil driver, you can use Kermit's SET PORT FOSSIL command to access
  388.    high-numbered ports.
  389.  
  390. Q: I installed my new internal data/fax modem on COM4 and I followed all
  391.    the instructions in the KERMIT.BWR file, so I can use it under DOS, but
  392.    I still can't use it under Windows, even after going into the Control 
  393.    Panel:Ports:COM4:Advanced dialog to set the address and IRQ.
  394.  
  395. A: Most likely cause: gaps in the COM port sequence; e.g. no COM3.  You must
  396.    also tell Windows that there is (e.g.) no physical COM3 by:
  397.  
  398.    . Edit \windows\system.ini
  399.    . Search for the [386Enh] section
  400.    . Add the following line:
  401.        COM3IRQ=-1
  402.      in the COM3 section.
  403.  
  404.    So now (for example) we have the following lines describing COM3 and COM4:
  405.  
  406.      COM3IRQ=-1
  407.      COM4Base=02E8
  408.      COM4IRQ=5
  409.  
  410.   (All of this terminology is explained below.)  Now to the hard cases...
  411.  
  412.   The following discussion is detailed and technical, but most of it boils
  413.   down to (a) telling Kermit two numbers, the port address and IRQ value; and
  414.   (b) fiddling with your modem.     Keep that in mind as you read more about PC
  415.   hardware than you ever wanted to know.
  416.  
  417. (6.2) HOW A PHYSICAL COMMUNICATION PORT IS ASSOCIATED WITH A DOS COMn DEVICE
  418.  
  419. DOS PCs support only two communication ports, COM1 and COM2, but have
  420. provisions for two more, COM3 and COM4.  COM3 and COM4 are not well supported
  421. in most types of PCs, as are COM1 and COM2 which rarely (by themselves) cause
  422. any problems (note: this last phrase is becoming increasingly less true as PCs
  423. are loaded up with additional devices such as CDROM drives, sound boards, etc).
  424. This discussion considers only COM1-COM4.
  425.  
  426. The digit in the port name (like the "2" in COM2) is an index into an area in
  427. memory that contains the address of the serial port hardware.  The PC's Basic
  428. Input/Ouput System (BIOS) has four words starting at segment 40 (hexadecimal),
  429. word 0, for the addresses of the first four COM ports.    Word 0 is for COM1,
  430. word 2 (two bytes per word) for COM2, word 4 COM3, and word 6 COM4.  To view:
  431.  
  432.   C:\> debug    (start the debug program)
  433.   -d 40:0       (display segment 40)
  434.   -q        (quit the debug program)
  435.  
  436. ("C:\>" is the DOS prompt, "-" is the debug prompt.)  Here are the results
  437. on a PS/2 with 3 COM ports:
  438.  
  439.   0040:0000  F8 03 F8 02 20 32 00 00-BC 03 00 00 00 00 60 03  .... 2........`.
  440.          ^^^^^ ^^^^^ ^^^^^ ^^^^^
  441.          COM1  COM2     COM3  COM4
  442.  
  443. The first line contains the COM port information (ignore the other lines, as
  444. well as the characters on the right).  "F8 03" is the 2-byte COM1 address,
  445. expressed in hexadecimal (base 16) with the low byte first. Thus the actual
  446. COM1 address is 03F8 hex, expressed in Kermit commands as \x3f8.  The COM2
  447. address is 02F8, the COM3 address is 3220, and (since there is no COM4) the
  448. COM4 address is 0000.  That is how both DOS and the BIOS understand which
  449. ports are defined and where to find them.
  450.  
  451. When your PC is powered up, the BIOS startup code checks for serial port
  452. hardware (that is, a Universal Asynchronous Receiver/Transmitter, or UART) at
  453. the two port addresses 03F8 and 02F8.  If it finds a UART at the first address
  454. then that address is placed in word 40:0 and declared to be COM1.  Then the
  455. BIOS tries the second address and if successful this address goes into the
  456. first available word at that time, typically 40:2 as the address of COM2.
  457. Thus if you remove a COM1 device then a previously COM2 device will appear in
  458. the COM1 BIOS storage area as COM1 to DOS and Kermit.  What happens to the
  459. other two words depends on the PC model and BIOS.  The IBM PS/2 BIOS fills in
  460. all four words on startup, but most others handle only the first two because
  461. that's how original PCs worked.
  462.  
  463.   So... just setting switches or jumpers on a serial port board or internal
  464.   modem does NOT necessarily define the board to be a particular COM port.
  465.  
  466. So why do some communication programs work with COM3 and COM4 without any
  467. special fiddling?  These programs ASSUME certain COM3 and COM4 addresses, even
  468. when there are no entries in the BIOS communication-port area. Some of these
  469. programs show you their assumptions in a menu (and might allow you to change
  470. them), others do not.  The assumed values are usually as follows:
  471.  
  472.   Port     Assumed Address (hexadecimal)
  473.   COM1          03F8
  474.   COM2          02F8
  475.   COM3          03E8
  476.   COM4          02E8
  477.  
  478. PS/2s use different addresses for COM3 and COM4 -- 3220 and 3228,
  479. respectively.  Well-behaved communication software (like Kermit) uses these
  480. addresses rather than the defaults listed above.  Ill-behaved software ignores
  481. the segment-40 addresses and erroneously uses its own values, right or wrong.
  482.  
  483. Unchecked use of an assumed port address is DANGEROUS if the device is not
  484. really where the software expects, especially if some other kind of device,
  485. say a network adapter, is at the given address.  It can also produce unwanted
  486. conflicts under Windows, OS/2, and DesqView, whose drivers often set the
  487. port's segment-40 word to 0 when they want to use the port exclusively and
  488. without interference, and then restore the real address when done, and similar
  489. unwanted interference with Int 14H redirectors that allow serial-port
  490. communication software to be used on network connections.
  491.  
  492. Unlike most other PC communication software, Kermit does NOT attempt to use a
  493. communications port unless:
  494.  
  495.   (a) It finds its address in the BIOS comm-port area, segment 40, or:
  496.   (b) You specify the address yourself.
  497. AND:
  498.   The device at the given address passes certain tests, in which registers
  499.   must contain certain values that are legitimate for a UART.
  500.  
  501. In other words, KERMIT IS MORE CAREFUL than most other communication software,
  502. because does not want to risk disrupting normal operation of your PC.
  503.  
  504. (6.3) SPECIFYING THE PORT ADDRESS
  505.  
  506. If you tell MS-DOS Kermit to SET PORT COMn (where n is 1, 2, 3, or 4), and
  507. Kermit responds:
  508.  
  509.   Warning, no hardware for this serial port.
  510.   This port will be operated through the BIOS as BIOSn
  511.  
  512. it means that Kermit did not find an address for the port in the BIOS area or
  513. it did find one but the hardware at that address did not look like a UART.  If
  514. the cause of the message is a missing address, you can tell MS-DOS Kermit the
  515. address of the port by issuing the following command:
  516.  
  517.   SET COMn \xhhhh
  518.  
  519. where n is 1, 2, 3, or 4, and hhhh are four hexadecimal digits (0-9, A-F)
  520. representing the 16-bit address.  This command not only informs Kermit of the
  521. address, but also inserts the address into the BIOS so other programs can find
  522. the port (if they follow the rules), and so you don't have to give this
  523. command to Kermit again until after the next time you reboot, unless another
  524. program removes it again.
  525.  
  526. After giving the SET COMn command, give a SET PORT COMn command for the same
  527. port, e.g.:
  528.  
  529.   set com3 \x3e8   ; FIRST specify the address of COM3 
  530.   set port com3       ; THEN select COM3
  531.  
  532. How do you know what addresses to give?  If have purchased an internal modem
  533. or an add-on serial port, the installation instructions should tell you.  You
  534. have to make sure that the address that you have chosen agrees with the
  535. address that Kermit will use.
  536.  
  537. Although it is not recommended that you guess at address values, sometimes it
  538. is the only way (as often with inherited equipment), for which occasions here
  539. is a list of commonly used addresses:
  540.  
  541.   Port     Likely Addresses (hexadecimal)
  542.   COM1         03F8
  543.   COM2         02F8
  544.   COM3         03E8, 3220 (PS/2)
  545.   COM4         02E8, 3228 (PS/2), 02E0
  546.  
  547. Now let's look at the other cause for "This port will be operated through the
  548. BIOS", namely that an address was found in segment 40, but the device at that
  549. address does not appear to be a genuine serial port.  Possible explanations:
  550.  
  551.  1. The device is at a different address.  Check your device's configuration
  552.     again, or your SET COMn command.
  553.  
  554.  2. Your device is indeed at the given address, but its registers do not
  555.     contain values expected of a true PC serial port.  In that case, BIOS
  556.     operation is the only alternative.
  557.  
  558.  3. Your device is at the given address, but there is a conflict with another
  559.     device at that address or the machine's bus speed (not CPU speed) is set 
  560.     so high that the hardware test gave confusing results.
  561.  
  562. When Kermit operates a port through the BIOS, rather than directly, it will be
  563. MUCH slower and might not work at all because the BIOS requires the CD, CTS,
  564. and DSR modem signals to be asserted by the device connected to the port (and
  565. the CD signal is normally NOT asserted by a modem before it has made a
  566. connection to another modem).  In that case, you must configure the device
  567. (e.g. modem) to assert DSR, CTS, and CD always, or wire your modem cable to
  568. fake these signals (e.g. by connecting CD and DSR together).
  569.  
  570. Assuming you have found the right address for your COM3 or COM4 port (or
  571. nonstandard address for COM1 or COM2), and you want these addresses to be set
  572. correctly for Kermit at all times, even if it doesn't read its initialization
  573. file, you can put a command like the following in your AUTOEXEC.BAT file:
  574.  
  575.   set kermit=com3 \x3e8; com4 \x2e8;
  576.  
  577. (6.4) INTERRUPTS AND IRQS
  578.  
  579.   "I can send characters to the modem, but I never see any on my screen."
  580.  
  581. This complaint, also known as "can-talk-but-not-listen syndrome", usually
  582. means that the communication device was found at the expected address, but
  583. Kermit's idea of its interrupt is wrong, or more than one device is generating
  584. the same interrupt.  What's an interrupt?
  585.  
  586. To achieve high-speed communication without impacting other applications,
  587. Kermit reads characters from a serial device using "interrupts".  Whenever a
  588. character arrives at the serial device, the device sends a signal, called an
  589. interrupt, that can be "caught" by applications like Kermit, leaving the
  590. application free to do other work in the meantime without having to constantly
  591. look at the serial port to see if any characters have arrived (an operation
  592. called "polling", which is used by some other communications programs).
  593. Polling programs are not sensitive to interrupts being set improperly and
  594. might therefore work with improperly-configured machines where Kermit will not
  595. (until you give it the required info), but they also tend to take over the
  596. entire computer.
  597.  
  598. In contrast to polling programs, Kermit is normally waiting for input from the
  599. keyboard, so it is idle if you are not typing and no characters are arriving
  600. at the communication port.  In multitasking environments like Windows or OS/2,
  601. this gives other applications the largest possible share of the CPU.
  602.  
  603. When a character arrives at the port, an interrupt signals Kermit to wake up
  604. from its keyboard-wait state and read from the port.  But Kermit needs to know
  605. which device the interrupt came from, so it will not read from the wrong one.
  606. The device is identified by an Interrupt Request (IRQ) number, a small number
  607. like 3 or 4. The BIOS does not record the IRQ number used by a serial port
  608. because the BIOS uses polling rather than interrupts.  The communications
  609. software has to know which IRQ to use.  By convention from the original IBM
  610. PC, COM1 uses IRQ 4 and COM2 uses IRQ 3. There is no standard for COM3 and
  611. above, but certain conventions are normally followed:
  612.  
  613.   Port     PS/2  Others
  614.   COM3     IRQ3    IRQ4
  615.   COM4     IRQ3    IRQ3
  616.  
  617. Certain serial port cards and internal modems allow themselves to be
  618. configured with different IRQ numbers (such as 9), even on COM1 or COM2.
  619. Check your device's installation instructions.
  620.  
  621. In general, NO TWO DEVICES SHOULD HAVE THE SAME INTERRUPT.  Otherwise there
  622. will be a serious conflict and potential lockups or damage.
  623.  
  624. Some types of PCs, however, notably Microchannel PS/2s, allow sharing of IRQ
  625. numbers.  Each application has its own interrupt service routine and each such
  626. routine is built to "chain" interrupts properly (pass them along to other
  627. applications if they arrived at the wrong place).  This works, for example,
  628. with Kermit on a PS/2; you can run two copies of Kermit under Windows, one
  629. using COM2/IRQ3 and the other using COM3/IRQ3 (i.e. two ports, same IRQ), both
  630. doing input and output simultaneously with no confusion.  But on most types of
  631. PCs, IRQs can NOT be shared, so each device must have a unique IRQ
  632. number. This caution applies especially when you have a serial mouse on IRQ 3
  633. or 4.
  634.  
  635. Once Kermit knows the COM port's address, it tests to see which IRQ number, 3
  636. or 4, the device uses. This is a safe test and doesn't cause any modem
  637. signaling or communication to take place.  The PC architecture has a limited
  638. range of IRQ numbers available, and so (usually) there can not be a unique IRQ
  639. number for each serial port when there are more than two, so in most cases no
  640. more than two serial ports can be active at once.  If the IRQ test fails, a
  641. default value is used, as listed above.  No error message is given in this
  642. case, but "can-talk-but-not-listen syndrome" is a likely result.
  643.  
  644. Some add-on communication boards or internal modems are set up to use IRQ
  645. numbers other than 3 or 4 to avoid conflicts with COM1 or COM2 and/or to allow
  646. more than two COM ports to be active at once.  But this can be dangerous --
  647. for example, IRQ 5 (which is often used for this purpose) is also used by the
  648. hard disk controller on the PC/XT. IRQ 7 is often used by network boards.  For
  649. this reason, Kermit does not automatically test any IRQ numbers other than 3
  650. or 4, and does not use any other IRQ number unless you tell it to.
  651.  
  652. But it is sometimes necessary, particularly on ISA (Industry Standard
  653. Architecture) bus machines (PC/ATs and compatibles) and earlier (such as PCs
  654. and XTs) to use an IRQ other than 3 or 4, for example when when an internal
  655. modem is installed as COM3 on IRQ4, and then use of COM1 prevents COM3 from
  656. working, and vice versa.  This problem can often be solved by reconfiguring
  657. the board to use an otherwise unused unique IRQ number.  Ideally this would be
  658. a normally free IRQ such as 10 or 11, but unfortunately most communication
  659. boards are not configurable for IRQs higher than 7.  Here is a brief, and
  660. definitely not comprehensive, guide to the low IRQ numbers (decimal):
  661.  
  662.      2    Normally available, but some video boards use it to obey an obsolete
  663.     standard for indicating vertical refresh.  Adjust video board jumpers
  664.     to not do this.     On 286's and above, IRQ 2 is also known as IRQ 9:
  665.     same IRQ, alternate number.  Windows 3.0 had difficulty with devices
  666.     using IRQ 2, but Windows 3.1 is better.
  667.  
  668.      3    Normally COM2 and COM4.     PS/2's use IRQ 3 for all serial ports above
  669.     COM1.  IRQ3 is also a favorite "factory default" of many local area
  670.     network (LAN) adapters.
  671.  
  672.      4    Normally COM1 and informally COM3 (except on PS/2s).
  673.  
  674.      5    Secondary parallel port.  Parallel ports are rarely interrupt-driven
  675.     (except for Novell RPRINTER users) so this IRQ becomes free if you
  676.     unjumper it on the parallel port board.  LAN adapters are often placed
  677.     on IRQ 5.  PC/XTs use IRQ 5 for the hard disk.  Careful with this one.
  678.  
  679.      6    Floppy disk drives. Leave it alone!
  680.  
  681.      7    Primary parallel port.    Remove as described for IRQ 5.    Be careful,
  682.     LAN adapters are frequently placed here.
  683.  
  684. IRQs higher than 7 are not available on original PCs or PC/XTs.
  685.  
  686.      9    Alias for IRQ 2 on PC/AT and above.  Don't try to use this one
  687.     as if it were a unique IRQ.
  688.  
  689.     10    Usually free.
  690.  
  691.     11    Usually free.
  692.  
  693.     12    Used by the IBM bus mouse, otherwise usually free.
  694.  
  695.     13    Math coprocessor errors are trapped here, otherwise frequently free.
  696.  
  697.     14    Used by hard disk on 286 and above.  Leave alone!
  698.  
  699.     15    Some SCSI controllers use this.     Usually free.
  700.     
  701. If your communication board uses an IRQ other than 3 or 4 and you experience
  702. "can talk but not listen" syndrome when using Kermit, simply tell Kermit the
  703. device's IRQ number.  This is done in the SET COMn command, after the address:
  704.  
  705.   SET COMn <address> <irq>
  706.  
  707. for example:
  708.  
  709.   SET COM3 \x03e8 5
  710.  
  711. When you include a number (like 3, 4, 5, 6, or 7) after the port address
  712. (separated by a space), Kermit skips its IRQ test and uses the IRQ number you
  713. specified the next time you give a SET PORT command for that port.
  714.  
  715.   AVOID address and IRQ conflicts; these items MUST NOT overlap existing
  716.   equipment. SERIOUS DAMAGE can result if, for example, the IRQ number you
  717.   give is the same as the one used by your disk controller or network
  718.   adapter.  Incorrect operation can result if the interrupt is in use by a
  719.   less critical device, such as a mouse.
  720.  
  721. It is necessary to specify the IRQ number in either of these two situations:
  722.  
  723.   1. The communication device uses an IRQ number other than 3 or 4.
  724.  
  725.   2. Kermit's IRQ test interferes with Windows or a similar environment.
  726.  
  727. Check your PC's configuration carefully before specifying an IRQ number.
  728. Before starting Kermit, you can use public domain or commercial utilities like
  729. MAPMEM, Northgate QAPLUS, Quarterdeck MFT, or the MSD utility shipped with
  730. Windows 3.1 to get an idea of which IRQ numbers are already in use (these
  731. utilities are, of course, not foolproof -- for example, they can't tell what
  732. IRQs are used by programs that are not presently loaded).  (NOTE: Run these
  733. programs under DOS, not Windows, if possible, since Windows hides things.)
  734.  
  735. If, even after establishing the device's interrupt, Kermit still fails to
  736. operate correctly, check whether:
  737.  
  738.   1. Some other device (such as a mouse or LAN adapter) is generating the 
  739.      same interrupt.
  740.  
  741.   2. Some other software (such as a mouse or video driver) is catching the 
  742.      same interrupt.
  743.  
  744. If you find a conflict, you'll have to resolve it: remove the offending device
  745. driver or TSR from your CONFIG.SYS or AUTOEXEC.BAT file or turn it off
  746. temporarily (e.g. with the MOUSE OFF command for certain mouse drivers) or
  747. reconfigure one of the conflicting devices to use a different IRQ.
  748.  
  749. Example: A PC (not PS/2) is delivered with a serial mouse on COM1 and with
  750. COM2 as a free serial port.  COM2 can be used with an external modem, but you
  751. can't put an internal modem on COM3 because its IRQ conflicts with the mouse
  752. and the COM4 address clashes with an 8514/A video adapter (such as the ATI
  753. Ultra+).  Neither the mouse interrupt nor the video board address can be
  754. changed.  So to install an internal modem, you must remove the serial mouse
  755. and driver and, if you need a mouse, replace it with a bus mouse.
  756.  
  757. (6.5) MODEM PROBLEMS
  758.  
  759.   "I just bought and installed an XYZ-PowerTurbo V-Dot-Everything internal
  760.    data/fax modem, and I can't make it work!"
  761.  
  762. With internal modems, particularly when they are installed on COM3 or COM4,
  763. the most common problems are:
  764.  
  765.  1. Kermit doesn't know the modem's address, or the device is using an IRQ
  766.     number other than 3 or 4.  These problems can be fixed by giving the
  767.     appropriate SET COMn command to Kermit and/or clearing up any interrupt
  768.     conflicts among your PC's devices.
  769.  
  770.  2. The internal modem is installed incorrectly, with an address or IRQ that
  771.     conflicts with one already in use on your PC.
  772.  
  773.  3. The internal modem does not correctly emulate a real IBM PC serial port,
  774.     and therefore fails Kermit's hardware test, and therefore can only be
  775.     used through the BIOS.
  776.  
  777.  4. The device is in a battery-powered computer, and power to the internal
  778.     modem has been disabled in the CMOS setup, or has been turned off
  779.     automatically when the cover is closed or the machine shut down.
  780.  
  781. In mid-1992, a new generation of low-cost, high-speed modems, both internal
  782. and external, began to appear on the market.  These modems typically offer a
  783. wide range of features: V.32 and V.32bis modulation, V.42 and MNP error
  784. correction, V.42bis and MNP data compression, etc.  Unfortunately, many of
  785. these modems suffered from bugs not found in earlier modems.  The problems are
  786. generally related to initialization of the modem and interaction with its
  787. command processor.  Some common complaints:
  788.  
  789.  1. "The modem won't dial or respond to commands".  Or the modem ignores
  790.     commands when Kermit's PARITY is set to a particular value, like EVEN.
  791.     Or commands are not processed correctly above a certain interface speed.
  792.  
  793.  2. "I can dial successfully, and in general send characters to and through
  794.     the modem, but I never get any characters back."  This looks suspiciously
  795.     like the "talk-but-not-listen" problem, but in some cases it is a bug in,
  796.     or a configuration problem with, the modem, having nothing to do with
  797.     Kermit: the modem is simply not sending any characters to the PC.
  798.  
  799.  3. "After using the modem with <name-omitted> communication software, it
  800.     also works with Kermit, but it won't work with Kermit unless I run
  801.     <name-omitted> first."
  802.  
  803.  4. "I can communicate in command-mode with the modem, up until I give it
  804.     an ATZ command, at which point my PC freezes up."
  805.  
  806.  5. The modem does not pass the BREAK signal.
  807.  
  808.  6. The DSR signal goes off after successful dialing.
  809.  
  810. And so on.  Here are some suggestions for overcoming these problems:
  811.  
  812.  1. Before giving a DIAL command, which invokes a macro containing OUTPUT
  813.     commands for the modem's command processor, give the command:
  814.  
  815.     SET OUTPUT PACING <milliseconds>
  816.  
  817.     For example:
  818.  
  819.     SET OUTPUT PACING 100
  820.     OUTPUT AT Q0 E1 V1 &F\13
  821.  
  822.     This inserts a pause between every character that Kermit sends to the
  823.     modem.
  824.  
  825.  2. External modems only: Check that your modem cable has wires for (at least)
  826.     the TD, RD, SG, CTS, RTS, DSR, CD, and DTR RS-232 signals.    If it does
  827.     not, replace the cable with a real modem cable, or (temporarily) configure
  828.     your modem to compensate for the missing signals.
  829.  
  830.  3. Read your modem manual and check your modem's configuration.  Perhaps its
  831.     interface speed is locked to a different speed than the one Kermit is
  832.     using.  Perhaps Kermit is set to use RTS/CTS flow control, but the modem
  833.     is not asserting CTS.  Also, check its factory and/or saved settings, and
  834.     under what conditions they are restored (for example, are they restored
  835.     when the PC drops DTR?).  How are you selecting saved settings -- read
  836.     your modem manual about (e.g.) the difference between AT&F and AT&F2.  Be
  837.     aware that the AT&Fn commands might not restore all S-registers, so double
  838.     check them.     Be particularly sensitive to the registers that control
  839.     interface speed, modulation technique, error correction, data compression,
  840.     negotiation, and fallback, and note that each modem maker probably uses
  841.     different registers and commands to control each of these features.
  842.  
  843.  4. Try the following sequence to initialize the port (using COM3 in this
  844.     example):
  845.  
  846.     SET COM3 <address> <irq>    ; (if necessary)
  847.     SET PORT 3            ; Select port 3
  848.     HANGUP                ; Drop DTR on port 3
  849.     SET PORT 3            ; Re-initialize port 3
  850.  
  851.  5. SET PARITY NONE before directly talking to the modem's command processor,
  852.     and then SET PARITY to whatever the remote host or service requires after
  853.     making the connection.  (In v3.14, the DIAL macro does this
  854.     automatically.)
  855.  
  856.  6. Ensure your PC bus speed is 8MHz.  Some PCs come with a BIOS SETUP
  857.     facility that lets you change the PC's bus speed, memory wait states, etc.
  858.     It is usually dangerous to deviate from the defaults, particularly from
  859.     the 8MHz bus speed, a standard for add-on devices; it might be required by
  860.     your communication board or internal modem.
  861.  
  862.  7. To avoid negotiation and fallback problems between the two modems, set
  863.     your modem for features that you know the answering modem will support:
  864.     the particular type of modulation, error correction, compression
  865.     (connection problems between the two modems have nothing to do with Kermit
  866.     and are beyond the scope of this document). If a modem appears to dial
  867.     correctly, gets connection tones, and then hangs up, it is a problem
  868.     between the two modems (involving one or both modems and/or the phone
  869.     company), and indicates a modem configuration problem, a bug, or a basic
  870.     incompatibility between the calling and answering modems.
  871.  
  872.  8. The ATZ problem -- a bug in your modem.  If the modem doesn't work after
  873.     an ATZ command, HANGUP and SET PORT again.  If that doesn't do it, power
  874.     the modem off and on.  If that doesn't work, power the PC off and on.
  875.  
  876.  9. If the modem doesn't pass the BREAK signal, but you want it to, read your
  877.     modem manual about how to configure it appropriately.  If your modem can't
  878.     be configured to pass the BREAK signal, but it does correctly implement a
  879.     command for sending BREAK, such as AT\B9, define an MS-DOS Kermit macro,
  880.     SBREAK, to send a BREAK as follows:
  881.  
  882.       define sbreak pause 1, output +++, pause 1, output ATB\{92}9\13, -
  883.     pause 1, output ATO\13, connect
  884.     
  885.     and assign it to the key of your choice, for example F1:
  886.  
  887.       set key \315 {\Ksbreak}
  888.  
  889. 10. Reportedly, some new modems (e.g. some of the PCMCIA kind) require their
  890.     commands to be in uppercase.  The dialing scripts should issue only
  891.     uppercase commands, but also check your dialing directory (e.g. "t" for
  892.     Tone dialing should be "T", etc).
  893.  
  894. 11. Call your modem maker's technical support number.  Ask if they have
  895.     replacement chips to fix bugs in your modem.
  896.  
  897. (7) DEVICE INTERRUPT CONFLICTS AND OTHER HARDWARE CONSIDERATIONS
  898.  
  899. On certain PCs, Kermit file transfers (or terminal sessions that are being
  900. logged to disk) through serial communication devices (COM1 thru 4) can suffer
  901. from data loss during disk read/write operations.  This is apparently because,
  902. on these PCs, the entire interrupt mechanism is TURNED OFF during disk reads
  903. or writes.  Thus, while the disk driver is active, no interrupts are generated
  904. by incoming characters, and therefore they are likely to be lost.
  905.  
  906. If you experience data loss during uploads (watch the "Retries" counter), try
  907. sending the same file from a RAM disk; if the retries go away, your PC has
  908. this problem.  If downloads to disk have lots of retries, try downloading the
  909. same file to the NUL device (tell MS-DOS Kermit to RECEIVE NUL); same deal.
  910.  
  911. Disk cache programs also consume many CPU cycles with interrupts turned off.
  912. The larger the amount to be written from cache the longer they stay off.
  913. If necessary shorten or eliminate the disk cache program.
  914.  
  915. Other types of conflicts can arise from:
  916.  . The video adapter driving Int 2 for vertical retrace.
  917.  . Video adapter clashing with memory controller caching on the motherboard.
  918.  . System bus cranked up too fast; should be 8MHz.
  919.  . Too few wait states.
  920.  . DOS PRINT TSR or other TSRs.
  921.  
  922. Several users have reported that on systems which have user-selectable
  923. processor speeds (such as 11MHz vs 25MHz), that Kermit works effectively at
  924. high serial communication speeds only when the higher processor speed is
  925. selected.
  926.  
  927. (8) MS-DOS 5.0 AND 6.x
  928.  
  929. You should not use MS-DOS Kermit (or other communications software) under
  930. DOSSHELL.  Unlike Windows, DesqView, OS/2, etc, DOSSHELL is NOT a multitasking
  931. environment.
  932.  
  933. (9) MICROSOFT WINDOWS, DESQVIEW, OS/2, WINDOWS NT, ETC.
  934.  
  935. Although MS-DOS Kermit can work in these environments, and even takes
  936. advantage of many of their features, it does not have a "graphical user
  937. interface".  You still have to type commands to the MS-Kermit> prompt or
  938. execute them from command files with the TAKE command.
  939.  
  940. (9.1) OS/2
  941.  
  942. The recommended communications software for OS/2 (any version) is C-Kermit
  943. 5A(190) or later, a native OS/2 application.  As of this writing, however,
  944. there are still a few good reasons for using MS-DOS Kermit under OS/2, 
  945. including:
  946.  
  947.  . To get Tektronix and/or Sixel graphics terminal emulation, which are not
  948.    yet offered by OS/2 C-Kermit. 
  949.  
  950.  . To run a special version of DOS, e.g. Chinese DOS (CC-DOS, KCDOS, or
  951.    ZWDOS), which can then be used with MS-DOS Kermit for terminal emulation
  952.    and command processing.
  953.  
  954. (9.1.1) OS/2 1.x...
  955.  
  956. Under OS/2 1.3 and earlier, MS-DOS Kermit only runs in full-screen mode.
  957. Under 1.x of OS/2, the serial port must first be conditioned by the command:
  958.  
  959.   SETCOM40 COM1=ON
  960.  
  961. (9.1.2) OS/2 2.0 and Later...
  962.  
  963. In OS/2 2.x and Warp, MS-DOS Kermit can run in a window or in a full screen.
  964. Kermit's flow control has no effect because OS/2 itself is controlling the
  965. device.  You can configure OS/2 to handle flow control itself by adding a
  966. command like the following to your STARTUP.CMD file:
  967.  
  968.     MODE COM1 XON=ON          (for XON/XOFF software flow control) 
  969. or:
  970.     MODE COM1 RTS=HS OCTS=ON  (for RTS/CTS hardware flow control)
  971.  
  972. If your PC's communication port is a 16550A[FN] UART serial communication
  973. adapter (as is standard on the PS/2), it has a built-in buffer to improve
  974. performance.  To enable use of the 16550's buffering capability, add BUFFER=ON
  975. to your MODE command:
  976.  
  977.     MODE COM1 XON=ON BUFFER=ON           (for XON/XOFF software flow control) 
  978. or:
  979.     MODE COM1 RTS=HS OCTS=ON BUFFER=ON (for RTS/CTS hardware flow control)
  980.  
  981. If you don't have a buffered UART, MS-DOS Kermit (and most likely any other
  982. communications software) will lose characters galore at high transmission
  983. speeds.
  984.  
  985. IDLE_DETECTION_TIME should be set to 0 (which is the default anyway) and
  986. IDLE_SENSITIVITY should be 100 to reduce jerkiness of DOS sessions.  Also,
  987. reportedly, HW_TIMER must set to ON to avoid "hangs or extreme slowness" when
  988. running MS-DOS Kermit scripts in a DOS window.
  989.  
  990. To make MS-DOS Kermit serial connections run very fast under OS/2, use Ray
  991. Gwinn's SIO Virtual Fossil Driver (VX00.SYS) in conjunction with his OS/2 comm
  992. driver (SIO.SYS) (these are shareware).  If you get rid of the overhead of the
  993. virtualized 16550 comm port, MS-DOS Kermit flies.  Just SET PORT BIOS<n> or
  994. FOSSIL <n>, where <n> is an existing physical (or SIO mapped) comm port and
  995. then use it in the normal way (FOSSIL <n> is faster than BIOS<n>).
  996.  
  997. There are several methods for making TCP/IP connections from MS-DOS Kermit
  998. under OS/2:
  999.  
  1000.  1. Shut down all OS/2 networking software and drivers, and then use
  1001.     MS-DOS Kermit in conjunction with a packet driver in a DOS window,
  1002.     just as you would under real DOS.
  1003.  
  1004.  2. Install a second network adapter, and then use MS-DOS Kermit in
  1005.     conjunction with a packet driver in a DOS window, just as you would under
  1006.     real DOS, on the second adapter.  This allows MS-DOS Kermit and OS/2
  1007.     networking to be active at the same time.
  1008.  
  1009.  3. Use IBM Warp CONNECT's COMTCP Interrupt 14 redirector as follows:
  1010.  
  1011.       comtcp -c <hostname-or-address> kermit set port bios1, stay
  1012.  
  1013.     In MS-DOS Kermit 3.14, this requires KERMIT.EXE patch 9.
  1014.  
  1015.  4. If you have Ray Gwinn's SIO/VMODEM shareware package, add the following
  1016.     lines to your CONFIG.SYS file:
  1017.  
  1018.     DEVICE=G:\SIO\SIO.SYS (COM1) (COM2) (COM3,INTERNET:2E8,NONE:3)
  1019.     DEVICE=G:\SIO\VSIO.SYS
  1020.     DEVICE=G:\SIO\VX00.SYS
  1021.  
  1022.     Make sure that VMODEM.EXE is running.  Then start MS-DOS Kermit and
  1023.     tell it to SET PORT FOSSIL <n>.
  1024.  
  1025. MS-DOS Kermit code page switching and graphics terminal (Tektronix, Sixel)
  1026. emulation work only in full-screen sessions, not in a window.  Ditto for
  1027. graphics-mode compressed text (132 column mode VT emulation, DG compressed
  1028. mode).
  1029.  
  1030. (9.2) MICROSOFT WINDOWS
  1031.  
  1032. MS-DOS Kermit operates under Microsoft Windows 3.0 and 3.1 in fullscreen mode
  1033. on all machines, and in a window on 386-class or higher machines that have
  1034. enough memory for Windows to operate in Enhanced Mode (3-4 megabytes are
  1035. required).  See installation instructions in READ.ME.
  1036.  
  1037. Memory-management setups accomplished under DOS (e.g. by EMM386) in CONFIG.SYS
  1038. are undone by Windows. If successful operation of Kermit or other applications
  1039. depends on some special memory configuration (such as eXclude= and frame=
  1040. clauses to protect portions of video memory, etc), you must duplicate this
  1041. configuration in the [Enhanced] section of the Windows SYSTEM.INI file.  See
  1042. section 19.
  1043.  
  1044. When running Kermit in two windows at once, one on COM1, one on COM2, Windows
  1045. complains that both applications want to access COM1.  To make sure that
  1046. COM1's IRQ 4 is not touched when starting COM2 (part of the "find the IRQ"
  1047. test), specify the COM2 port parameters explicitly as "set com2 \x2f8 3"
  1048. (standard port address and IRQ for COM2) before "set port com2" to make Kermit
  1049. skip the test.
  1050.  
  1051. Similarly, if you have a serial mouse on COM1, and you want Kermit to use (for
  1052. example) COM2 for communication, add the following to your MSCUSTOM.INI
  1053. file to prevent Kermit from touching COM1 and interfering with your mouse:
  1054.  
  1055.   SET COM2 \x2f8 3 ; (substitute appropriate values)
  1056.   SET PORT COM2
  1057.  
  1058. Kermit's performance under Windows depends on the BIOS, the PC architecture,
  1059. the serial port hardware, which drivers and TSRs are loaded, the system load,
  1060. and Windows settings.  A 16550A UART is particularly important under Windows,
  1061. as is an effective flow control method. For further tuning, look at the
  1062. Windows files SYSIN*.TXT for information about SYSTEM.INI settings related to
  1063. communication ports, particularly COMxBuffer and COMBoostTime.
  1064.  
  1065. When running MS-DOS Kermit under Windows, specifying a ",P" at the end of a
  1066. serial port setting in WIN.INI or in a MODE command can cause loss of
  1067. characters from the serial port.  Remove the ",P" from the setting.
  1068.  
  1069. TCP/IP connections over packet drivers under Windows require the WINPKT shim.
  1070. TCP/IP connections over ODI under Windows require a packet-driver simulation
  1071. shim and also the WINPKT shim.    Or, instead of using WINPKT, you can lock
  1072. Kermit into memory.  You can't use Kermit in conjunction with Winsock.
  1073. See NETWORKS\SETUP.DOC.
  1074.  
  1075. (9.3) DESQVIEW and DESQVIEW/X
  1076.  
  1077. Set "Optimize Communications" in the DesqView Advanced menu to "No".
  1078.  
  1079. DESQview/X reportedly requires that the serial port be configured to
  1080. "optimize" to prevent Kermit from losing characters.  Network connections
  1081. (TCP/IP over a packet driver or ODI) within an X window of DESQview/X
  1082. apparently do not work.
  1083.  
  1084. (9.4) WINDOWS NT
  1085.  
  1086. If you run Kermit under 4NT or CMD.EXE (but not under 4DOS or COMMAND.COM)
  1087. under Windows NT 3.5, the serial port will hang up when you exit from Kermit.
  1088. Kermit is not doing this itself, it just happens -- probably because these
  1089. 32-bit shells deallocate the port, causing NT to drop RTS and DTR.
  1090.  
  1091. If you have performance problems with MS-DOS Kermit under Windows NT:
  1092.  
  1093. You really need at least 20 MB of memory to run Windows NT, and particularly
  1094. to run communications software under Windows NT.
  1095.  
  1096. Check the Event Viewer for errors in the System Log, or use WINMSD to check
  1097. for IRQ conflicts.
  1098.  
  1099. (10) VIDEO PROBLEMS
  1100.  
  1101. Never use segments A000 or B000 for memory mapping.  These belong to the
  1102. video adapter.  See section 19.
  1103.  
  1104. Kermit does not mix well with NNANSI.SYS, a public domain (or shareware?)
  1105. console driver that replaces ANSI.SYS, and which implements "hardware
  1106. scrolling", a case of two non-cooperating programs directly manipulating the
  1107. video adapter at the same time!  Similarly for other console drivers that
  1108. access the screen directly, including ANSI.COM (from PC Magazine, circa 1988).
  1109. To turn off NNANSI.SYS's direct screen access, put the following commands in
  1110. your MSCUSTOM.INI file:
  1111.  
  1112.   echo \27[=98l             ; Reset "fast mode"
  1113.   define on_exit echo \27[=98h     ; Set "fast mode"
  1114.  
  1115. Q: I am using kermit software and trying to use SET TERMINAL GRAPHICS
  1116.    COMPRESSED and every time I try to use this mode on a monochrome screen it
  1117.    will only show half a screen, even though it works fine on a color screen.
  1118.  
  1119. A: Those monochrome boards which do graphics are Hercules-compatible units.
  1120.    Herc adapters have a half and full "page" graphics mode, and you need to
  1121.    configure them for full-page graphics.  Read the booklet that comes with
  1122.    the board; sometimes the vendor supplies utilities on disk, sometimes it's
  1123.    a jumper on the board.
  1124.  
  1125. (11) SERIAL COMMUNICATIONS
  1126.  
  1127. ANSI.COM, mentioned above in connection with video problems, also interferes
  1128. with serial communications.  Solution: unload it, use ANSI.SYS instead.
  1129.  
  1130. On 386-class PCs with high-quality buffered UARTs, Kermit can be used at
  1131. speeds up to 57600 bps under DOS (under Windows or DesqView, or on 286s or
  1132. below, the maximum speed is usually lower).  115200 bps usually works only
  1133. with a short shielded cable, and the async adapters of the two devices in
  1134. perfect tune.  Many new high-speed PCs come with unbuffered UARTs.  Despite
  1135. the speed of the CPUs, these new machines perform serial communications less
  1136. reliably than older slower machines (like the PS/2-70) with buffered UARTs.
  1137.  
  1138. MS-DOS Kermit will tell you whether you have a buffered UART:
  1139.  
  1140.   SET PORT 2
  1141.   SHOW COMMUNICATIONS
  1142.   ...
  1143.   COM1 Address: Port \xf38, IRQ 4, 16550A UART FIFO
  1144.  
  1145. 16550A UART means you have the good kind, FIFO means it has a "First-In
  1146. First-Out" buffer.  If Kermit does not say you have a 16550A UART FIFO, and
  1147. you are suffering poor performance or data loss, replace it (if possible)
  1148. with a 16550A.
  1149.  
  1150. SHOW COMMUNICATIONS might incorrectly display the UART type after you switch
  1151. ports (e.g. from COM1 to COM2).  After using the new port (e.g. in CONNECT
  1152. mode), the display will be correct again.
  1153.  
  1154. If your speed is set too high, the symptom might be lost or garbled characters
  1155. or graphics images on the screen, or data-overrun beeps.  Normally flow
  1156. control prevents these problems so use it if you can.  Printing while in
  1157. CONNECT mode needs flow control to be active.
  1158.  
  1159. The SHOW MODEM and WAIT commands work right only if your modem or other
  1160. communication device is configured to raise and lower the DSR, CTS, and CD
  1161. signals appropriately, and the cable that connects your PC to the modem passes
  1162. these signals through.  For some modems, the factory setting is to always keep
  1163. CD on, even if there is no connection.  Consult your modem manual.
  1164.  
  1165. For serial devices, the HANGUP command (and Ctrl-]H in CONNECT mode) works
  1166. only if the cable that connects your PC to the communication device passes the
  1167. DTR signal through, and if the communication device itself is configured to
  1168. hang up or otherwise terminate the connection when the DTR signal is lowered
  1169. by the PC.  For some modems, the factory setting is to ignore DTR transitions.
  1170. Consult your modem manual.  NOTE: in version 3.11, the HANGUP command turned
  1171. off DTR for about 1/2 second and then turned it back on again.  In version
  1172. 3.12 and later, the HANGUP command turns off DTR until the next time you issue
  1173. a command that accesses the serial port.  If you can't make the HANGUP command
  1174. work, use the ATHANGUP macro defined in MSKERMIT.INI, which should work on
  1175. Hayes-like modems.
  1176.  
  1177. On serial connections, when you PUSH to DOS (including when you use Kermit's
  1178. RUN command), and you have XON/XOFF flow control enabled, Kermit sends an XOFF
  1179. (Ctrl-S) to the host when you leave, and XON (Ctrl-Q) when you return (if you
  1180. have RTS/CTS flow control enabled, Kermit turns off RTS).  This is to make the
  1181. host stop transmitting data.  However, if you were in the EMACS text editor on
  1182. the host, Ctrl-S will be interpreted as a Search command, and Ctrl-Q as a
  1183. Quote command.  When you return to EMACS, type several Ctrl-G's to get back to
  1184. normal.
  1185.  
  1186. (12) TERMINAL EMULATION
  1187.  
  1188. In v3.14 the status line says "Esc:Alt-x help:Alt-h ... 7n1 ..."  This means
  1189. use Alt-x to escape back to the prompt, Alt-h to get a popup help screen.
  1190. This message won't change if you remap the \Kexit and \Khelp verbs to other
  1191. keys.  7n1 means 7 data bits, no parity, 1 stop bit.  To get 8 data bits, you
  1192. also have to SET TERMINAL BYTESIZE 8.
  1193.  
  1194. Session logging can be turned on using the LOG SESSION command, and it can be
  1195. toggled on and off during terminal emulation by using whatever keys are
  1196. associated with the verbs \Klogoff and \Klogon.  To enable a session log, but
  1197. to have it initially turned off (using the F1 and F2 keys as examples):
  1198.  
  1199.   SET KEY \315 {\Kloginit}  ; F1 to turn on log
  1200.   SET KEY \316 \klogoff        ; F2 to turn log off
  1201.   DEFINE loginit log session, set key \315 \klogon, define loginit, connect
  1202.  
  1203. To log your session to a printer, add the word PRN after "log session" in the
  1204. third line above.
  1205.  
  1206. The session log is written to disk by DOS.  The frequency with which DOS
  1207. updates this file is governed by the BUFFERS= line in your CONFIG.SYS file
  1208. (see your DOS manual).  If you allocate a large number of buffers in
  1209. CONFIG.SYS, disk operations occur infrequently and this improves performance.
  1210. If you need to have the session log updated more frequently to minimize the
  1211. loss of data, e.g. when there is a power failure, you can do this (at the
  1212. expense of efficiency) by allocating fewer buffers in CONFIG.SYS.
  1213.  
  1214. If you have Kermit's TERMINAL TYPE set to NONE, there is a two-second pause
  1215. after you give a CONNECT command, to give you time to read the message about
  1216. how to get back.
  1217.  
  1218. (12.1) KEYBOARDS AND KEYBOARD DRIVERS
  1219.  
  1220. On some national keyboards, like the German one, Kermit's normal escape
  1221. character, Ctrl-] (Control-Rightbracket) does not seem to work.  This is
  1222. because certain control characters are typed differently on these keyboards.
  1223. On the German keyboard, Ctrl-] is produced by holding down the Ctrl (Strg) key
  1224. and pressing the + (plus) key.  MS-DOS Kermit has no way of knowing this.
  1225.  
  1226. Kermit does not work with certain Swedish keyboard drivers because of a bug in
  1227. the keyboard driver.  Workaround: use a different Swedish keyboard driver;
  1228. reportedy several are available.  Trouble has also been reported with the
  1229. British keyboard driver.
  1230.  
  1231. Do not attempt to plug an enhanced (101) keyboard into a PC/XT or earlier.
  1232. The BIOS on early PCs does not support the newer keyboards, even if you
  1233. install the corresponding keyboard driver.
  1234.  
  1235. (12.2) VT TERMINAL EMULATION
  1236.  
  1237. Kermit's VT320/340 emulator lacks the following features:
  1238.  
  1239.  . Smooth scroll
  1240.  . Downloadable soft fonts
  1241.  . ReGis graphics (VT340/330)
  1242.  . Dual sessions in split screens (VT340/330)
  1243.  . Local screen editing and block transmission (for security reasons)
  1244.  . True double height/width characters (these are simulated)
  1245.  . True underscore on color monitors (simulated by color)
  1246.  . Some of the exotic and rarely-used features of the DEC VT340/330 series:
  1247.    formatted screen & graphics operations highly specialized to DEC hardware.
  1248.  
  1249. If VMS thinks you have a VT220 or VT320, it sends 8-bit control sequences.
  1250. Kermit does not understand them unless you SET TERMINAL BYTESIZE 8.  The
  1251. symptom is the appearance of fragments of escape sequences on the screen and
  1252. wrong cursor positioning, and possibly fractured tab settings, particularly
  1253. during EVE sessions.  You can prevent VMS from sending 8-bit control sequences
  1254. (if you really do not have an 8-bit connection) by giving the VMS command SET
  1255. TERMINAL /NOEIGHT.  You should also use Xon/Xoff flow control in both
  1256. directions (SET TERM /TTSYNC /HOSTSYNC on VMS).
  1257.  
  1258. In VT100/200/300 emulation on the IBM PC family, receipt of ESC [ 4 m (turn on
  1259. underscore) results in a color change rather than underscore on IBM CGA, EGA
  1260. and other color displays.  IBM color display adapters don't have an underscore
  1261. attribute.  The color chosen for underscore simulation is derived from the
  1262. normal fore- and background colors in a way that ensures it is different from
  1263. both.  Use SET TERMINAL UNDERSCORE to pick your own colors for this.
  1264.  
  1265. Receipt of ESC [ 0 m does not affect the fore- and background colors, in
  1266. compliance with the definition of this function for real DEC VT terminals,
  1267. unless special Kermit color value 20 is given in command SET TERMINAL COLOR.
  1268. With 20 stated colors are restored to their normal values along with resetting
  1269. all visual attributes. Fore- and background colors can be changed by the host,
  1270. by sending explicit ESC [ 3x/4x m escape sequences, or with SET TERMINAL
  1271. COLOR.
  1272.  
  1273. SET TERMINAL COLOR 1 [3xx 4xx] (used to make the foreground color bright), if
  1274. issued when SET TERMINAL SCREEN REVERSE is in effect, reverts to normal video.
  1275. Similary, if SET TERMINAL COLOR 1 is in effect, the effects of the host-
  1276. generated escape sequences CSI 1 m and CSI 0 m are reversed.
  1277.  
  1278. If certain incomplete escape sequences (e.g. Operating System Command) are
  1279. received during terminal emulation, Kermit can hang waiting for the string
  1280. terminator that never comes, usually because of noise on the communication
  1281. line.  Reset the terminal emulator by pressing Alt-= (Alt-equals), the default
  1282. key for \Kreset.
  1283.  
  1284. (12.3) DG TERMINAL EMULATION
  1285.  
  1286. Because Data General terminals use Xon or Xoff characters in escape sequences,
  1287. Kermit can't do Xon/Xoff flow control of incoming characters on serial
  1288. connections.  Solution: use RTS/CTS flow control if available, or else tell
  1289. Kermit to SET FLOW OUTGOING-XON/XOFF.
  1290.  
  1291. (12.4) CHANGING SCREEN DIMENSIONS
  1292.  
  1293. Kermit assumes 25 screen lines but can adapt to other lengths if it knows how
  1294. to get this information from the video adapter.  The number of lines is
  1295. usually available from DOS as the "video mode".  Unfortunately, different
  1296. video adapters have different video modes, or use the same mode numbers to
  1297. mean different things, and use different methods to set the mode (typically
  1298. some kind of DOS MODE or VMODE "LINES=" command, the "printing" of certain
  1299. escape sequences to be intercepted by the console driver, etc).  In any case,
  1300. Kermit tries its best to use the screen dimensions discovered upon startup,
  1301. but if Kermit subsequently enters 132-column or graphics mode, it will return
  1302. to a 25-line screen because if it doesn't know how the original nonstandard
  1303. geometry was established in the first place.
  1304.  
  1305. Certain screen lengths, such as 25 and 43, are more or less standardized
  1306. among different video adapters and drivers, but most others are kludges in
  1307. which, for example, the video adapter enters 25- or 43-line mode but then
  1308. loads a different-size font.  E.g. 50 rows might be achieved by loading
  1309. an 8x8 font into a 25-line screen.  This is why Kermit is often unable to
  1310. retain or restore the screen length when changing the screen width.
  1311.  
  1312. WARNING: Some MODE or VMODE programs might corrupt Kermit's memory when run
  1313. from the MS-Kermit> prompt.  This was observed in the following situation: Two
  1314. TELNET sessions to two hosts, frequent switching between them, and also
  1315. frequent changing of screen sizes via "run vmode".  Most likely cause: failure
  1316. of the VMODE program to observe proper memory allocation etiquette.
  1317.  
  1318. To get properly formatted screens during terminal emulation, be sure to inform
  1319. the remote host of your screen width and length.  On some UNIX systems, this
  1320. can be done by:
  1321.  
  1322.   `eval resize`
  1323.  
  1324. which asks the terminal for its dimensions (Kermit responds correctly) and
  1325. puts these values in your UNIX environment.  As of version 3.14, Kermit will,
  1326. on TCP/IP TELNET connections, engage automatically in NAWS (Negotiate About
  1327. Window Size) protocol with the TELNET server, if the TELNET server supports
  1328. this, which will inform the remote host of your screen size automatically.
  1329.  
  1330. (12.5) 132-COLUMN MODE
  1331.  
  1332. Normally, you can't use 132-column text mode in a Windows window, because
  1333. Windows takes over the graphics adapter and hides its particulars from Kermit,
  1334. but you can use it in a full screen session.  But if you want to try it in a
  1335. window anyway, tell Kermit to SET TERMINAL VIDEO-CHANGE ENABLE.  Then when a
  1336. directive is received to switch video modes, Windows might pop up a dialog box
  1337. saying that it won't let you do this in a Window session; click on OK and the
  1338. Kermit session will be switched to full-screen.
  1339.  
  1340. If you have a monitor with fixed horizontal frequency but a video adapter that
  1341. Kermit knows how to switch into 132 column mode, you will see only garbage on
  1342. your screen whenever Kermit switches to 132 columns.  Get a new monitor or
  1343. tell Kermit to SET TERMINAL VIDEO-CHANGE DISABLE.
  1344.  
  1345. On serial connections with Xon/Xoff flow control, Kermit sends Xoff and Xon
  1346. apply when commanded to change its screen size between 80 and 132 columns,
  1347. because this is often a time-consuming operation.  With RTS/CTS, Kermit turns
  1348. off RTS while the size is being changed.
  1349.  
  1350. See KERMIT.UPD for further information on 132-column mode.
  1351.  
  1352. (12.6) GRAPHICS TERMINAL EMULATION
  1353.  
  1354. PS/2 Model 25 and 30 MCGA adapter is used in low-resolution CGA mode by
  1355. default; images may be elongated or truncated.    Hi-resolution graphics can be
  1356. done (as of version 3.11) via SET TERM GRAPHICS VGA, but these slow PC models
  1357. might not be able to keep up at speeds above 9600 bps.
  1358.  
  1359. When you type the escape character (normally Ctrl-]) while in graphics mode,
  1360. the screen goes back to text memory.  Then when you type the argument
  1361. character, the graphics screen reappears (unless the argument was C or P).
  1362. Ctrl-]F will not file the graphics screen, but rather the text screen, because
  1363. that's the screen that's showing after type the Ctrl-] key.  To file the
  1364. graphics screen (in TIFF format), use \Kdump (normally on Ctrl-Keypad-End).
  1365.  
  1366. You can't dump the Tektronix screen while the GIN-mode crosshair cursor is
  1367. active; Kermit's keyboard translator is not active.  Key strokes (of regular
  1368. typewriter keys) or mouse actions are used to transmit the crosshair
  1369. coordinates.  If you press a non-typewriter key, Kermit just beeps.
  1370.  
  1371. Kermit does not emulate a particular kind of color Tektronix terminal, e.g.
  1372. 41xx or 42xx series.  However, it can be used for color graphics by mixing
  1373. ANSI color-setting escape sequences with Tektronix or Sixel commands.  This
  1374. requires graphics software vendors adding support for MS-DOS Kermit graphics
  1375. to their packages (WordPerfect and SAS have done so for their host-resident
  1376. products).  There is at least one ReGis-to-Sixel converter on the market:
  1377. RETOS, a DEC product for VMS, and there is also a sixel driver for
  1378. Ghostscript.
  1379.  
  1380. Problems may occur when using Kermit with host-resident (VAX/VMS) versions of
  1381. WordPerfect because the color palette report sent upon request of WordPerfect
  1382. is very long. If the host is not configured properly, parts of the report will
  1383. be lost because of overruns on the VMS side.  SET TERM /HOSTSYNC and /TTSYNC
  1384. are required for WP/VMS.  Even then intervening communication boxes (e.g.
  1385. terminal servers) can become overloaded with the 200++ byte response.
  1386.  
  1387. In v3.14, Ctrl-L (as opposed to ESC Ctrl-L) was removed as Tektronix
  1388. screen-clearing command.
  1389.  
  1390. (13) PRINTER SUPPORT
  1391.  
  1392. Kermit uses DOS services for printing. There is no knowledge of particular
  1393. printer types in Kermit.  Kermit determines whether the printer is ready, or
  1394. if there has been a printing error, via DOS's return code.  If DOS tells
  1395. Kermit the printer is not ready, Kermit changes the printer device name to NUL
  1396. so subsequent print operations won't block.  To reenable printing operations
  1397. (e.g. after turning on the printer, adding paper, etc), use a SET PRINTER
  1398. command such as SET PRINTER PRN or SET PRINTER LPT1.
  1399.  
  1400. When printing a file that contains a Ctrl-Z character, DOS will "close" the
  1401. printer as soon as it sees the Ctrl-Z, and when subsequent characters are sent
  1402. to the printer, DOS reports a printer error and Kermit reports "Printer error,
  1403. discard or retry?".  This is a feature of DOS.
  1404.  
  1405. The Print Screen and Shift-PrintScreen keys are never seen by Kermit.  They
  1406. are intercepted and acted on by the BIOS.  Thus Kermit has no control over the
  1407. format of the printed output.  For example, a formfeed is not added to the end
  1408. to force a page eject.  If you want to print the current screen with a
  1409. formfeed at the end, use the following procedure:
  1410.  
  1411.   SET DUMP PRN    ; Specify that screen dumps go to the printer
  1412.  
  1413. and then use the \Kdump keyboard verb to accomplish the screen dump.  This
  1414. verb is assigned by default to the keypad Ctrl-End key on the numeric keypad,
  1415. but you can assign it to another key of your choice (but not Print Screen),
  1416. for example:
  1417.  
  1418.   SET KEY \315 \Kdump  ; Assign screen dump to F1
  1419.  
  1420. Alternatively, you can define a key to send a formfeed (ASCII 12) to the
  1421. printer:
  1422.  
  1423.   DEFINE FFPRINT run echo \12 >PRN, connect
  1424.   SET KEY \316 {\Kffprint} ; F2 sends FF to printer
  1425.  
  1426. Or you can redefine your host printing procedure to include a formfeed:
  1427.  
  1428.   1. Send ESC [ 5 i
  1429.   2. "type" the file
  1430.   3. Send formfeed (ASCII 12)
  1431.   4. Send ESC [ 4 i
  1432.  
  1433. If you SET DUMP PRN and then attempt to use the screen-dump feature, and the
  1434. printer is turned off or not ready, the error message is misleading: "Cannot
  1435. open file to save screen to disk".  This is because Kermit is using DOS for
  1436. this operation, and has no idea that PRN is the printer and not a disk file.
  1437.  
  1438. (Shift-)Printscreen can cause the PC to hang if there is no attached printer.
  1439. This is a BIOS feature, Kermit never receives the command.  If this happens
  1440. during terminal emulation, try pressing Alt-= (hold down Alt and press the "="
  1441. key) several times to reset the terminal emulator.
  1442.  
  1443. Serial printers are not well supported by DOS, and since Kermit does all its
  1444. printing through DOS, Kermit's printing features might not work well with
  1445. serial printers.  To use a serial printer effectively, you must have a driver
  1446. for it that takes care of flow control, such as UTILS\XONXOFF.COM.
  1447.  
  1448. Transparent printing starts when the host sends the sequence ESC [ 4 i and
  1449. stops when the host sends ESC [ 5 i.  All characters, including escape
  1450. sequences, that arrive at the port are passed directly to the printer without
  1451. translation (but the parity bit is stripped if Kermit's parity is not NONE).
  1452. If character translation is desired, or it is desired not pass screen-control
  1453. escape sequences to the printer, use Autoprint rather than Transparent print
  1454. (ESC [ 0 i, ESC [ ? 4 i, ESC [ ? 5 i). In that case, characters are translated
  1455. to the current IBM code page.  If your printer doesn't support your IBM code
  1456. page, you need an external utility to translate from the PC code page to the
  1457. printer's character set.  You can use SET PRINTER xxxx to capture Transparent
  1458. print or Autoprint data into a file.
  1459.  
  1460. Under PATHWORKS, reportedly, transparent print operations to a network printer
  1461. do not cause printing to actually occur until the user escapes back to the
  1462. MS-Kermit prompt and forces the printer to be closed (and reopened) with a SET
  1463. PRINTER PRN command.
  1464.  
  1465. If transparent print material arrives but the printer is not ready, Kermit
  1466. issues a PRINTER IS NOT READY message and gives the user a chance to retry (R)
  1467. or discard (D).     If D is selected, then when the printer is made ready again,
  1468. subsequent transparent print jobs are discarded.  Solution: escape back to the
  1469. prompt and give a SET PRINTER PRN command to reenable transparent printing.
  1470.  
  1471. If chunks of a printout are missing or garbled, this indicates a lack of
  1472. adequate flow control between Kermit and the printer (normally not a problem
  1473. with parallel or network printers) or between Kermit and the host application.
  1474. Make sure an effective means of flow control is enabled at every interface
  1475. along the communication path.  If you can't eliminate the problem any other
  1476. way, then tell Kermit to SET PRINTER <filename> to have host-generated print
  1477. material redirected to a file, and then print the file later. 
  1478.  
  1479. You can use Kermit's controller-print feature to turn a session log into a
  1480. plain text file.  The session log contains escape sequences that can be
  1481. stripped as follows:
  1482.  
  1483.  1. Edit the session log file to insert ESC [ ? 5 i at the beginning
  1484.     (start controller print).
  1485.  
  1486.  2. Start Kermit and give it these commands:
  1487.       SET PORT BIOS1 ; Or some other port you will not actually be using.
  1488.       SET PRINTER FILE.TXT ; Send transparent print material to this file.
  1489.       REPLAY SESSION.LOG   ; Run session log through terminal emulator.
  1490.  
  1491. (Thanks to H.D. Knoble for this hint.)
  1492.  
  1493. (14) INTERNATIONAL CHARACTER SETS
  1494.  
  1495. Character-set translation during terminal emulation is done between the remote
  1496. TERMINAL CHARACTER-SET and the PC's current code page. During file transfer,
  1497. it's between the TRANSFER CHARACTER-SET and the PC's code page.     At startup,
  1498. MS-DOS Kermit asks DOS to report the current code page, and it sets your FILE
  1499. CHARACTER-SET and your TERMINAL CODE-PAGE to this value.  But DOS often lies
  1500. about the code page, so in most cases when your actual code page is anything
  1501. but 437 (or maybe 850), you, yourself, will have to tell MS-DOS Kermit what
  1502. your code page really is, using the following two commands:
  1503.  
  1504.   SET TERMINAL CODE-PAGE CPnnn ; Your actual current code page.
  1505.   SET FILE CHARACTER-SET CPnnn ; The code page for incoming text files.
  1506.  
  1507. The two would normally be the same, but MS-DOS Kermit lets you set them
  1508. differently if you want to, for example if you have a Hebrew code page loaded
  1509. for display purposes, but you want to download a Russian file that you will
  1510. display later, after loading a Cyrillic code page.
  1511.  
  1512. MS-DOS Kermit does not allow all possible combinations of FILE and TRANSFER
  1513. character sets.     The Hebrew code page (CP862) forces the Hebrew transfer
  1514. character set, and vice-versa.    Similarly for Cyrillic and Latin-2, etc.
  1515. Latin-1, however, can be used with many code pages: 437, 850, 861, 863, 865.
  1516.  
  1517. Some of the ISO 2022 or DEC-specific character-set designation escape
  1518. sequences, which *do* work correctly, nevertheless fail to have an effect on
  1519. the character-set field of the SHOW TERMINAL display.
  1520.  
  1521. LOG SESSION records characters that arrive at the serial port, before
  1522. translation by either Kermit's built-in terminal character set translation
  1523. tables or by user-specified SET TRANSLATION INPUT commands.  This allows
  1524. REPLAY to work correctly but it prevents special characters from being logged
  1525. after translation to the PC's own character set.  Screen dump (Ctrl-End or
  1526. Ctrl-]F) and autoprint, however, record the translated characters.
  1527.  
  1528. SET TERMINAL CHARACTER SET is effective only for text screens, not for
  1529. graphics screens.
  1530.  
  1531. International characters in macro names are not case independent.
  1532.  
  1533. Case-independent string matching operations (e.g. SET INPUT CASE IGNORE, IF
  1534. EQUAL xxx yyy) won't necessarily work with international characters.
  1535.  
  1536. The macros supplied with MS-DOS Kermit 3.14 for switching fonts use the the
  1537. 16-dot-high fonts supplied in the PCFONTS directory of the MS-DOS Kermit
  1538. diskette, which are appropriate for 25x80 screens.  If you need to use a
  1539. different screen size, see PCFONTS\READ.ME for further information.
  1540.  
  1541. Fonts are generally not preserved when switching from 80- to 132-column
  1542. screen mode.  If you need to use one of Kermit's PCFONTS in 132-column mode,
  1543. you should put your PC in 132-column mode before starting Kermit.
  1544. Alternatively, you can try loading the font and starting Kermit as follows
  1545. (using CP852 as an example):
  1546.  
  1547.   withfont c:\kermit\pcfonts\cp852.f16 kermit
  1548.  
  1549. WITHFONT loads itself as a TSR to reload the font each time the video mode
  1550. changes, and then unloads itself when Kermit exits.  (Unfortunately, WITHFONT
  1551. was not included on the original 3.14 Kermit diskette.)
  1552.  
  1553. (15) COMMAND PROCESSING
  1554.  
  1555. When a command field begins with @ (at-sign), the following characters are
  1556. interpreted as the name of a file that contains the rest of the command.  If
  1557. you need to type a command field that actually starts with @, encode the
  1558. atsign as \64 or \{64}.
  1559.  
  1560. \B in an OUTPUT command tells Kermit to send a BREAK.  \L Tells Kermit to
  1561. send a Long BREAK.  To output \B or \L literally, use two OUTPUT
  1562. statements, or use four (yes FOUR) backslashes before the B or L.
  1563.  
  1564. Certain commands, such as RUN, DIRECTORY, TYPE, etc, invoke COMMAND.COM
  1565. "underneath" Kermit, and COMMAND.COM might, in turn, invoke other programs.
  1566. If you get the message "Can't run program" in response to such a command, it
  1567. usually means there is not enough memory.  But you should also check your
  1568. SHELL and COMSPEC environment variables to make sure they indicate a valid
  1569. command shell.
  1570.  
  1571. When you RUN a program from within KERMIT, there is no way to access the
  1572. program's return code.  Kermit RUNs programs through COMMAND.COM, which does
  1573. not pass along the program's return code to Kermit.
  1574.  
  1575. If you include the word STAY anywhere on the Kermit command line, e.g.:
  1576.  
  1577.   kermit echo stay
  1578.  
  1579. it is interpreted as a STAY command.
  1580.  
  1581. Commands in command files can be continued by including "-" as the last
  1582. character on the line, but NOT if the line ends with a trailing comment.  In
  1583. other words, you can't have a trailing comment on a continued line. If you
  1584. need to end a line with a dash, but the dash is part of the command rather
  1585. than a continuation symbol, use \45 instead or add a trailing comment.
  1586.  
  1587. Trailing comments can be used only in command files.  All text starting with
  1588. the first semicolon through the end of line is ignored.  If you need to
  1589. include an actual semicolon in a command, precede it with a backslash (\;).
  1590. Note (v3.14) that a semicolon comment must have the semicolon either at the
  1591. beginning of the line or following a whitespace (space, tab) character.
  1592. Otherwise the semicolon and following text is considered part of the command.
  1593.  
  1594. The name and password given to SET SERVER LOGIN must be matched exactly by the
  1595. ones in REMOTE LOGIN.  Case matters.  To include spaces within the username,
  1596. password, or account field of the REMOTE LOGIN or SET SERVER LOGIN commands,
  1597. surround the field with {braces}.
  1598.  
  1599. DISABLE ALL is not equivalent to all the other DISABLE commands given
  1600. separately.  For example, DISABLE DELETE restricts REMOTE DELETE commands from
  1601. the client to working only in the MS-DOS Kermit server's current directory,
  1602. while DISABLE ALL prevents all types of modifications to the PC's file system,
  1603. including file deletion and creation.
  1604.  
  1605. (16) KEY MAPPING
  1606.  
  1607. So key translation and macros can work on both IBM and non-IBM compatible PCs,
  1608. Kermit uses the system BIOS to obtain key scan codes.  But the IBM BIOS does
  1609. not produce scan codes at all for certain keys, and may produce duplicate scan
  1610. codes for others.  Num Lock, Print Screen, Scroll Lock, and Pause are
  1611. examples.  The GOLD.COM utility can be used to make Num Lock act like F1.
  1612.  
  1613. Version 3.13 and later recognize the difference between between Space,
  1614. Shift-Space, Ctrl-Space, Alt-Space, etc, so that SHOW KEY shows different scan
  1615. codes for each combination of Space with modifier keys (e.g. so Ctrl-Space can
  1616. send NUL).  In 3.14, the Esc key and Enter keys also have new differentiated
  1617. scan codes when combined with Shift, Alt, and Ctrl.  See KERMIT.UPD.
  1618.  
  1619. Key macros are executed while in CONNECT mode. If you assign the \Khangup verb
  1620. to a key, Kermit remains in CONNECT mode after the hangup takes place. On a
  1621. serial dialup connection, Kermit turns off the DTR signal, and you should see
  1622. a confirmation message from the modem, such as NO CARRIER, on your screen, and
  1623. then if you have SET CARRIER ON, Kermit should pop back to its prompt;
  1624. otherwise it stays in CONNECT mode.  On a TCP/IP network connection, however,
  1625. Kermit does indeed drop the connection, but since Kermit is still in CONNECT
  1626. mode, it is immediately reestablished.  If you want to terminate a network
  1627. session by pressing a key, use a method that leaves CONNECT mode.  You can do
  1628. this by defining a macro to hang up, and then assigning execution of the macro
  1629. to the key, e.g. Alt-d:
  1630.  
  1631.   define xxx hangup
  1632.   set key \2336 {\Kxxx}
  1633.  
  1634. This causes Kermit to return from CONNECT mode and execute the macro without
  1635. returning to CONNECT mode.  This technique works for both serial and network
  1636. connections.
  1637.  
  1638. To assign several verbs to a single key, use braces like this:
  1639.  
  1640.   set key \315 {\{Kfoo}\{Kdump}\{Kbar}}
  1641.  
  1642. "foo" and "bar" are macro names, and \Kdump is Kermit's screen-dump verb.
  1643.  
  1644. Q: Where is the .INI file that will set MS-DOS Kermit for using a 3270
  1645.    protocol converter to access an IBM mainframe, so I can use PF1 and similar
  1646.    keys that are required by fullscreen mainframe applications?
  1647.  
  1648. A: The 3270 protocol converter is mapping between an IBM 3270 terminal and
  1649.    some kind of ASCII terminal, such as a VT100.  And Kermit is emulating a
  1650.    VT100 (not a 3270!).  Neither the VT100 nor the PC have the same keys as a
  1651.    3270 terminal.  Each site that runs 3270 protocol converters sets up its
  1652.    own mapping -- there is no standard for this, and therefore, there can be
  1653.    no one Kermit key-mapping file that will work at all sites.  The mapping
  1654.    is done in the 3270 emulator.  Contact your site administrator for details.
  1655.  
  1656. (17) FILE TRANSFER
  1657.  
  1658. (17.1) Performance
  1659.  
  1660. Q: How can I make Kermit file transfers go faster?
  1661.  
  1662. A: Very briefly (page numbers refer to "Using MS-DOS Kermit", 2nd Edition):
  1663.  
  1664. 1. If you are using an error-correcting, data compressing modem, set Kermit's
  1665.    interface speed (SET SPEED) to at least four times the modem's connection
  1666.    speed -- e.g. if the modems connect at 14400 bps, set Kermit's speed to
  1667.    57600.  And then lock the modem's interface speed to the same value.
  1668. 2. Use the most effective flow control method available for the connection.
  1669.    On serial connections, use RTS/CTS if possible.  On TCP/IP connections, SET
  1670.    FLOW NONE.
  1671. 3. Use long packets, say 1000 or 2000: SET RECEIVE PACKET-LENGTH (see p.100)
  1672. 4. Use sliding windows, say 4 or 8 or 12: SET WINDOW (p.102)
  1673. 5. Use "control character unprefixing" (see KERMIT.UPD about this)
  1674.  
  1675. Quick Start: MS-DOS Kermit 3.14 MSKERMIT.INI comes with a FAST macro.  Try it.
  1676. If you are using a high-speed modem, be sure to use the appropriate dialing
  1677. script from the MODEMS subdirectory -- these scripts take care of items (1)
  1678. and (2) above for you.
  1679.  
  1680. If this works, you'll get fast Kermit downloads easily; if not, then some of
  1681. the parameters will need adjustment -- window size or packet length; read the
  1682. suggested sections of "Using MS-DOS Kermit" for details.  For fast uploads,
  1683. you'll also have to give similar commands to the Kermit program on the other
  1684. end (SET WINDOW, SET RECEIVE-PACKET LENGTH).  SHOW MACRO FAST displays the
  1685. definition of the FAST macro.  To change it, put the new definition in your
  1686. MSCUSTOM.INI file.
  1687.  
  1688. When going through a terminal server or PAD, investigate whether it supports
  1689. a special "file transfer" mode, such as Cisco "terminal download".
  1690.  
  1691. (17.2) Hardware Flow Control Problems
  1692.  
  1693. Even when using RTS/CTS flow control, characters can be lost during file
  1694. transfer.  This can happen if the PC turns off interrupts for any length of
  1695. time, e.g. to service the hard disk -- especially if you have a disk-caching
  1696. program active.  It can also happen if you have loaded the DOS PRINT TSR, or a
  1697. screen saver, or any of various other TSRs.  In such cases, Kermit never gets
  1698. the interrupt that signals a character has arrived, and so cannot service it.
  1699. The standard advice here is to remove TSRs and/or disk caching.
  1700.  
  1701. (17.3) Miscellaneous File Transfer Hints and Tips
  1702.  
  1703. When transferring files with another PC that is running DOS, Windows, or
  1704. OS/2, it is usually OK to SET FILE TYPE BINARY for all transfers.  This allows
  1705. any mixture of text and binary files to be transferred correctly.  The only
  1706. reason to SET FILE TYPE TEXT would be if you need character-set translation,
  1707. e.g. from one code page to another.
  1708.  
  1709. The efficiency reported at the end of a file transfer is relative to the
  1710. serial port speed.  This can be confusing and/or misleading when using a modem
  1711. whose connection speed to the other modem is different from the serial port
  1712. speed, especially when the modems are also doing compression.
  1713.  
  1714. SET EOF CTRL-Z, when used with text files that actually contain Ctrl-Zs, might
  1715. result in gaps or truncation in the vicinity of the Ctrl-Z.  A DOS artifact.
  1716.  
  1717. If MS-DOS Kermit receives a file whose name (the part before the period)
  1718. corresponds to a DOS device name, such as CON, PRN, etc, the incoming file
  1719. will be sent to that device rather than being stored on disk.  A DOS feature.
  1720.  
  1721. When using Kermit through a terminal server (particularly with TELNET
  1722. protocol), or directly through a SET PORT TCP connection, it is sometimes
  1723. necessary to SET PARITY SPACE for file transfer. It is sometimes necessary use
  1724. shorter packets with terminal servers.  Try SET RECEIVE PACKET-LENGTH 80,
  1725. working up or down to the longest length that works.  Also be sure that you
  1726. have not unprefixed the terminal server's escape character.
  1727.  
  1728. REMOTE TYPE and other REMOTE commands resulting in an error "Unable to open
  1729. CON": insufficient FILES= in CONFIG.SYS.
  1730.  
  1731. The host prompt for TRANSMIT is a single character (SET TRANSMIT PROMPT).  It
  1732. is not possible to specify a multi-character or varying transmit-prompt.  Note
  1733. that the TRANSMIT PROMPT character must be entered in backslash notation, e.g.
  1734.  
  1735.   SET TRANSMIT PROMPT \0
  1736.  
  1737. for no prompt at all (Backslash-Zero, not Zero).
  1738.  
  1739. (18) SCRIPT PROGRAMMING
  1740.  
  1741. In version 3.14, the \m(macroname) operator is replaced by the definition of
  1742. the named macro.  No further evaluation occurs.  This is a change from 3.13
  1743. and earlier.  The new behavior is consistent with C-Kermit, and it allows
  1744. the use of "long variable" (i.e. macro) names to hold DOS filespecs, which
  1745. generally contain backslashes, which in turn would trigger unwanted actions
  1746. if we allowed evaluation to proceed to full depth.  Example:
  1747.  
  1748.   define \%a blah
  1749.   define _file C:\123\%A.WKS
  1750.   send \m(_file)
  1751.  
  1752. Here we have a file called %A.WKS in the 123 directory.  If evaluation were to
  1753. descend past the first level, the SEND command would see a filename called
  1754. C:{blah.WKS rather than C:\123\%A.WKS.  Use ASSIGN to force full evaluation.
  1755.  
  1756. To read lines from a file and then ECHO or OUTPUT them, you would normally
  1757. do something like this:
  1758.  
  1759.   open read oofa.dat
  1760.   :loop
  1761.   read \%a
  1762.   if fail stop
  1763.   echo \%a
  1764.   goto loop
  1765.  
  1766. However, if a line from the file contains any backslashes, the ECHO (or
  1767. OUTPUT, or similar) command will treat them as introducers for variable names,
  1768. numeric character codes, etc, depending on the subsequent characters.  This
  1769. is desirable in some cases (e.g. boilerplates), but undesirable in others.
  1770. To force Kermit to treat backslashes in data files literally, use a trick
  1771. like the following:
  1772.  
  1773.   open read oofa.dat
  1774.   :loop
  1775.   read \%a
  1776.   if fail stop
  1777.   echo \freplace(\%a,\,\\)
  1778.   goto loop
  1779.  
  1780. It can be hard to interrupt execution of a script program, such as a dialing
  1781. script.  Ctrl-C and Ctrl-Break are noticed only when Kermit asks DOS to read
  1782. from (or check the status of) the keyboard, and only certain Kermit commands
  1783. do this, like PAUSE, which fails if any key is pressed during the PAUSE
  1784. interval.  So if you want your script program to be nicely interruptible, you
  1785. can include the following commands at key points in the program:
  1786.  
  1787.   PAUSE 1
  1788.   IF FAIL STOP 1 Interrupted
  1789.  
  1790. The terminal emulator is active only when MS-DOS Kermit is in CONNECT mode
  1791. (and when it is executing the REPLAY command).    Thus it is NOT active during
  1792. execution of script commands such as INPUT and OUTPUT.    This means:
  1793.  
  1794.  1. If the host sends the escape sequence that tells the terminal to identify
  1795.     itself, it is ignored.  You have to put the appropriate INPUT and OUTPUT
  1796.     commands in your script program.  Here is a macro to set your terminal
  1797.     type in Kermit and to set up the appropriate response and terminal-type
  1798.     strings:
  1799.  
  1800.     def term if not def \%1 def \%1 \v(term),-
  1801.       set term type \%1,-
  1802.       if fail end 1,-
  1803.       assign _ttype \%1,-
  1804.       if eq \%1 vt320 def _tid \27[?63;1;2;4;8;9;15c,-
  1805.       if eq \%1 vt220 def _tid \27[?62;1;2;4;8;9;15c,-
  1806.       if eq \%1 vt102 def _tid \27[?6c,-
  1807.       if eq \%1 vt100 def _tid \27[?1c,-
  1808.       if eq \%1 vt52  def _tid \27/Z
  1809.  
  1810.     Whenever you switch terminal emulations, do "term vt102" instead of "set
  1811.     term type vt102" (substitute your preferred terminal type).     In any script
  1812.     that responds to ESC Z (or whatever), have it "output \m(_tid)", and any
  1813.     prompt that asks for your terminal type you can "output \m(_ttype)".  And
  1814.     be sure to execute a "term" command in your MSKERMIT.INI file, so your
  1815.     initial terminal type is set.
  1816.  
  1817.  2. If the host sends escape sequences to configure the terminal, these too
  1818.     are ignored; i.e. they have no effect on Kermit's terminal emulator.
  1819.  
  1820.  3. A host-generated escape to put the terminal in Tektronix mode has no
  1821.     effect.  Put explicit SET TERMINAL TYPE TEK commands in the appropriate
  1822.     places in your script program.
  1823.  
  1824.  4. Screen formatting escape sequences have no effect.    If you have SET INPUT
  1825.     ECHO ON, they are simply displayed as-is.
  1826.  
  1827. If the remote host is sending ANSI (VTxxx) escape sequences during execution
  1828. of the script program, then ANSI.SYS or similar console driver can interpret
  1829. the escape sequences.  This is particularly useful when running a script that
  1830. logs in to a full-screen system, such as an IBM mainframe through a protocol
  1831. converter.  But beware: ANSI.SYS is not totally compatible with a VT100, and
  1832. might produce unwanted side effects, like popping your PC into 40-column mode.
  1833. If you experience such trouble while using Kermit script programs, SET INPUT
  1834. ECHO OFF or remove ANSI.SYS from your CONFIG.SYS file and reboot.
  1835.  
  1836. PAUSE, WAIT, and similar commands also open the connection on the currently
  1837. selected port if it is not open already.  For example, SET PORT TCP <host>
  1838. does not open the connection itself -- the first input/output command
  1839. (including PAUSE) will do it.  Similarly, if DTR is not asserted on a serial
  1840. connection, PAUSE will assert it.
  1841.  
  1842. PAUSE, WAIT, and similar commands also cause port input to be echoed to the
  1843. screen if INPUT ECHO is ON.  Use SET INPUT ECHO OFF to defeat this effect.
  1844.  
  1845. If the REINPUT command fails to find the requested text in the INPUT command
  1846. buffer, it will wait (up to the timeout interval) for more characters to
  1847. arrive from the communication channel.
  1848.  
  1849. INPUT / REINPUT combinations will not work if the INPUT buffer is smaller than
  1850. the amount of text that separates the INPUT text from the REINPUT text.     You
  1851. can increase the size of the INPUT buffer by including the desired size in
  1852. your KERMIT=INPUT <size> environment variable.    The default size is 256 bytes.
  1853.  
  1854. Script programming hint: To test whether a readable floppy disk is available
  1855. in drive A:, do this:
  1856.  
  1857.   SPACE A:
  1858.   IF FAILURE ECHO No diskette in drive A:.
  1859.  
  1860. The ON_EXIT macro is intended only for automatic execution when MS-DOS Kermit
  1861. exits.    It only works once, to prevent recursion (as would happen, for
  1862. example, if you put an EXIT command in your ON_EXIT definition).
  1863.  
  1864. C-Kermit 5A(190) has an MINPUT command, which is like INPUT, but looks for
  1865. multiple INPUT strings simultaneously, and succeeds if it encounters any of
  1866. them during the timeout interval, and sets a variable to the number of the
  1867. string that matched.  This can be simulated in MS-DOS Kermit as follows:
  1868.  
  1869.   define MINPUT set alarm \%1,-
  1870.   :top,-
  1871.   if alarm end 1,-
  1872.   input 1 \%2,if success asg mynput 1,if success end 0,-
  1873.   if not def \%3 goto top,reinp 0 \%3,if succ asg mynput 2,if succ end 0,-
  1874.   if not def \%4 goto top,reinp 0 \%4,if succ asg mynput 3,if succ end 0,-
  1875.   if not def \%5 goto top,reinp 0 \%5,if succ asg mynput 4,if succ end 0,-
  1876.   if not def \%6 goto top,reinp 0 \%6,if succ asg mynput 5,if succ end 0,-
  1877.   if not def \%7 goto top,reinp 0 \%7,if succ asg mynput 6,if succ end 0,-
  1878.   if not def \%8 goto top,reinp 0 \%8,if succ asg mynput 7,if succ end 0,-
  1879.   if not def \%9 goto top,reinp 0 \%9,if succ asg mynput 8,if succ end 0,-
  1880.   goto top
  1881.  
  1882. And used in sequences like the following, which are portable between
  1883. MS-DOS Kermit and C-Kermit:
  1884.  
  1885.   minput 60 CONNECT ERROR {NO CARRIER} BUSY RING
  1886.   if fail errfail {No response from the modem}
  1887.   if eq \v(program) C-Kermit asg mynput \v(minput)
  1888.   goto CASE_\m(mynput)
  1889.  
  1890. (courtesy James Sturdevant)
  1891.  
  1892. (19) MEMORY MANAGEMENT
  1893.  
  1894. Any PC software is likely to misbehave if your PC memory is insufficient or is
  1895. incorrectly configured.  MS-DOS Kermit runs in conventional memory (the first
  1896. 640K) of your PC, occupying about 280K initially, then allocating additional
  1897. memory as needed for rollback screens, file-transfer packet buffers, etc, and
  1898. also uses additional memory to execute certain commands such as TYPE and
  1899. DIRECTORY, for which it invokes a second copy of COMMAND.COM (appoximately
  1900. 30K) in conventional memory, as well as RUN, invokes not only COMMAND.COM but
  1901. an additional program to be run by COMMAND.COM, for example "run edit".  If
  1902. there is insufficient memory, these operations will not work; thus it is
  1903. always best to have as much free conventional memory as possible.
  1904.  
  1905. Memory for file-transfer packets is allocated at the time the transfer begins,
  1906. based on the current sliding-window size (SET WINDOW) and packet-length (SET
  1907. RECEIVE PACKET-LENGTH), and is deallocated when the transfer ends.  So SHOW
  1908. MEMORY won't reveal the effect of the packet buffers.  If insufficient memory
  1909. is available for the requested window size and packet length, MS-DOS Kermit
  1910. automatically reduces its RECEIVE PACKET-LENGTH.  For maximum file-transfer
  1911. efficiency, conventional memory is always used for packet buffers. Thus packet
  1912. buffers and RUN/PUSH/TYPE/DIRECTORY commands "time-share" the same
  1913. conventional memory.
  1914.  
  1915. Memory for graphics screens is taken from your video display adapter.  Storage
  1916. of graphics images in the video's on-board memory allows rapid switching
  1917. between text and graphics screens provided (a) your video has sufficient
  1918. memory, (b) the memory is not "mapped away", and (c) you are not running
  1919. Kermit under Windows.  Video adapter memory is generally in segments
  1920. A000-BFFF.
  1921.  
  1922. Memory for rollback screens is allocated when the CONNECT command is first
  1923. given, i.e. when Kermit first displays its terminal emulation window, and
  1924. remains allocated until you EXIT from Kermit.  This can be demonstrated by
  1925. starting Kermit, giving the command SHOW MEMORY, then giving the CONNECT
  1926. command, then escaping back (Alt-x), and then giving the SHOW MEMORY command
  1927. again -- see how available memory has shrunk.  Approximately 4K is required
  1928. per 24x80 rollback screen (more for bigger screens).  The default number of
  1929. rollback screens is 10, but the number can be set to practically any value at
  1930. all (0 or greater) by giving the following command to DOS before you start
  1931. Kermit (interactively, or in your AUTOEXEC.BAT file):
  1932.  
  1933.   SET KERMIT=ROLLBACK 40
  1934.  
  1935. The smaller the number, the less memory required; the bigger, the more memory.
  1936. In v3.13 and later, you can also give the command:
  1937.  
  1938.   SET ROLLBACK <number-of-screens>
  1939.  
  1940. at the MS-Kermit prompt at any time, and the rollback memory will be adjusted
  1941. when you next CONNECT.
  1942.  
  1943. A large number of rollback screens can crowd out other possibilities, like the
  1944. ability to use Kermit's RUN, PUSH, TYPE, DIRECTORY, and other commands that
  1945. run inferior processes.  MS-DOS Kermit v3.13 and later lets you store your
  1946. rollback screens in Expanded Memory (EMS) if you have more than 1MB of
  1947. physical memory and you have an expanded memory manager for it like
  1948. Quarterdeck QEMM or EMM386 and HIMEM that come with DOS 5.0 and Windows 3.1.
  1949.  
  1950. Using expanded memory for rollback screens frees 40K of conventional memory if
  1951. you are using the default number (10) of rollback screens, and it also allows
  1952. you to have a much larger number of rollback screens.  The following steps are
  1953. required to keep your rollback screens in expanded memory:
  1954.  
  1955. 1. Make sure the desired amount of expanded (EMS) (not "extended", or XMS)
  1956.    memory is available.     The DOS MEM command will tell you this.
  1957.  
  1958. 2. In your AUTOEXEC.BAT file, set the desired number of Kermit rollback
  1959.    screens.  For example, for 250 screens (requiring about 1 megabyte):
  1960.  
  1961.       SET KERMIT=ROLLBACK 250
  1962.  
  1963. 3. Give the following command to MS-DOS Kermit:
  1964.  
  1965.       SET TERMINAL EXPANDED-MEMORY ON
  1966.  
  1967.    If this command fails, Kermit prints an appropriate error message.
  1968.  
  1969. Now start a Kermit session, scroll some text off the screen during CONNECT
  1970. mode, and check the operation of the PageUp/PageDown keys.  If they work,
  1971. you're probably done.  And as an added benefit, graphics screens will also be
  1972. stored in expanded memory, allowing you to switch between graphics and text
  1973. screens (Alt-minus), even under Windows, without losing the graphics screen.
  1974.  
  1975. If it doesn't work, then welcome to the bewildering world of DOS memory
  1976. management.  The most common symptom of a bad memory configuration is that
  1977. your PC will freeze the first time Kermit tries to scroll a line off the
  1978. screen or clear the screen.  Time to look at your CONFIG.SYS file.
  1979.  
  1980. First, here is a straightforward DOS 5.0 CONFIG.SYS configuration that sets up
  1981. a PC with 8MB of memory to have 6MB of expanded memory:
  1982.  
  1983.   DEVICE=C:\DOS\HIMEM.SYS
  1984.   DEVICE=C:\DOS\EMM386.EXE 6144 RAM
  1985.   DOS=HIGH,UMB
  1986.   DEVICEHIGH=C:\DOS\ANSI.SYS
  1987.  
  1988. HIMEM.SYS must be loaded first and then EMM386.     With memory management now
  1989. active, DOS is told to use "high memory" (don't ask) and "upper memory blocks"
  1990. (UMB, the space between 640K and 1MB) and then ANSI.SYS is loaded into the
  1991. upper memory area rather than conventional memory.
  1992.  
  1993. EMM386 is asked to take care of 6144K of expanded (EMS) (not extended, XMS)
  1994. memory, and the RAM switch means that it also should manage the upper memory
  1995. blocks.     This configuration works on a PC that has 8MB of memory (6144K= 6MB=
  1996. 1024 x 6), leaving 1MB of extended memory for any process that might need it.
  1997. Adjust as appropriate for different memory sizes.
  1998.  
  1999. If you are using RAMDRIVE.SYS, give it the /A switch to use expAnded memory,
  2000. rather than the /E switch for extEnded memory, e.g.:
  2001.  
  2002.   DEVICEHIGH=C:\WINDOWS\RAMDRIVE.SYS 1024 512 64 /A
  2003.  
  2004. After making these changes to CONFIG.SYS, reboot your PC and give a DOS MEM
  2005. command to check that the needed amount of Expanded (EMS) memory is available.
  2006.  
  2007. Now run Kermit and check the expanded-memory rollback feature.  Also tell
  2008. Kermit to SHOW MEMORY to see how much conventional memory remains it starts.
  2009. If it's not enough, look in your CONFIG.SYS and AUTOEXEC.BAT for other drivers
  2010. or TSRs that can be removed or loaded high.  If you access a CD-ROM drive via
  2011. Microsoft CD Extensions, include the /E switch (Expanded) when you start it:
  2012.  
  2013.   C:\BIN\MSCDEX /E /D:MSCD000 /M:10
  2014.  
  2015. Suppose you have a network board that uses a certain segment of memory
  2016. (e.g. at segment CC00 hex) which conflicts with DOS's memory management.  You
  2017. must tell EMM386 to "exclude" this segment from its memory managing:
  2018.  
  2019.   DEVICE=C:\DOS\EMM386.EXE 6144 x=cc00-cc7f RAM frame=e000
  2020.  
  2021. These segment address numbers are obtained from the network board technical
  2022. manual (or, perhaps more likely, from the board vendor's technical support
  2023. phone number).
  2024.  
  2025. For debugging, get additional info about your PC's memory layout using DOS
  2026. MEM/C and MEM/P commands, the MSD program that comes with Microsoft Windows,
  2027. or the MFT (Manifest) program that comes with QEMM.
  2028.  
  2029. It is vital that the expanded memory page frame, all 64KB of it, be located
  2030. where it will not interfere with other memory usage.  Tell your memory manager
  2031. where to place it, usually with a frame=<segment> command-line option.  Don't
  2032. put it in video memory, A000-BFFF.  Don't put it the same place as a network
  2033. board or other device buffer.  Don't assume the memory manager will pick a
  2034. safe spot.  Windows users must do the same in both the DOS memory manager
  2035. (ignored by Windows) AND in Windows SYSTEM.INI [386Enh section], e.g.:
  2036.  
  2037.   EMMPageFrame=EC00    <- EMS page frame
  2038.   EMMExclude=C000-C007    <- protecting device buffers from memory managers
  2039.   EMMExclude=CE00-CFFF
  2040.   EMMExclude=A000-BFFF
  2041.  
  2042. The configurations in the two places must be the THE SAME.
  2043.  
  2044. If all else fails, tell Kermit to SET TERMINAL EXPANDED-MEMORY OFF.  NOTE:
  2045. whenever you switch Kermit's expanded memory status between OFF and ON, your
  2046. previous rollback screens are lost.
  2047.  
  2048. Kermit can try to use 132-column display mode if asked, and to do so it needs
  2049. to identify the video adapter, usually by looking for a text string in the
  2050. adapter's ROM Bios, which typically starts at segment C000.  If memory
  2051. management "stealth mode" maps away the video BIOS then Kermit can't find the
  2052. signature and won't know how to control the video board.  Below is an example
  2053. where C000-C007 is kept visible for a Tseng Labs 8900 chip video board (one
  2054. line, broken for presentation):
  2055.  
  2056. DEVICE=C:\QEMM\QEMM386.SYS R:3 RAM ROM X=A000-BFFF ARAM=C000-C007 X=D000-D1FF
  2057.  ST:M vxddir=c:\qemm ext=256
  2058.  
  2059. (20) INTERACTIONS WITH DOS
  2060.  
  2061. Kermit creates temporary files when in server mode and responding to REMOTE
  2062. commands.  If you have a TEMP environment variable, Kermit uses it for these
  2063. files; otherwise Kermit uses your current disk and directory.  If you have a
  2064. TEMP environment variable whose value is not the name of a write-accessible
  2065. disk / directory, Kermit can't respond to REMOTE commands.  It's best to
  2066. define TEMP to refer to a disk with plenty of free space.
  2067.  
  2068. The limit on your DOS PATH string is 127 characters.  If you add, say,
  2069. C:\KERMIT to the end of you your PATH= statement in AUTOEXEC.BAT, and that
  2070. makes it longer than 127, DOS (and Kermit's TAKE and similar commands) won't
  2071. be able to find your Kermit files.
  2072.  
  2073. A REMOTE HOST or similar command sent to an MS-DOS Kermit server can invoke
  2074. the DOS critical error handler, which issues its "Abort, Ignore, Retry?"
  2075. message on the real screen, and waits for a response from its own real
  2076. keyboard, and so the server will no longer respond.  Kermit attempts to catch
  2077. these errors before DOS learns learns about them, but some cannot be avoided
  2078. (like disk i/o errors).
  2079.  
  2080. Similarly, a REMOTE DIRECTORY command sent to an MS-DOS Kermit server can
  2081. cause the server to hang if its default directory command pauses after each
  2082. screen (DIRCMD=/P).  The server will hang any time a subprocess invoked by any
  2083. REMOTE command requests keyboard input.
  2084.  
  2085. MS-DOS Kermit uses the program named in the DOS SHELL environment variable as
  2086. a replacement for COMMAND.COM, which can be displayed by typing SET at the DOS
  2087. prompt.  It is not associated with the SHELL= line in CONFIG.SYS.
  2088.  
  2089. Interaction between MS-DOS Kermit and various terminate-and-stay-resident
  2090. (TSR) programs is necessarily unpredictable. Console, mouse, clock, or
  2091. graphics drivers might interfere with file transfer, e.g. the CMOSCLK.SYS
  2092. driver on the PS/2 model 55SX.  If TSR programs are interfering with Kermit
  2093. (e.g. by taking over the timer or serial port interrupts), you should remove
  2094. them all from your AUTOEXEC.BAT or CONFIG.SYS files, and then put them back
  2095. one by one until you have identified the culprit.
  2096.  
  2097. Mouse drivers are particularly notorious in this respect.  Suggestion: don't
  2098. load your mouse driver in CONFIG.SYS or AUTOEXEC.BAT.  Load it manually when
  2099. needed, unload it or turn it off when you are finished with it.
  2100.  
  2101. Use caution when invoking certain TSR programs while PUSHed from Kermit
  2102. (e.g. using the PRINT command for the first time), as not all of these
  2103. programs observe proper etiquette for allocating and freeing memory, and the
  2104. TSRs will be loaded above Kermit into the middle of memory where they may
  2105. prevent large programs from loading later.
  2106.  
  2107. On early (original motherboard & BIOS) PCs, and on systems that mimic them
  2108. (e.g. early Compaqs), the cursor may assume a strange shape (e.g. minus sign)
  2109. upon return from CONNECT.  This is caused by a bug in the early BIOS, which
  2110. stored cursor attributes incorrectly.  See "The Dashed Cursor", by Paul
  2111. Pierce, PC Tech J., Dec. 1985, page 47. His code goes like this:
  2112. ---(cut)---
  2113. ; Program FIXCURS.ASM by Paul Pierce
  2114. code    segment public 'code'
  2115.     assume cs:code, ds:code, es:nothing
  2116. ; This program is set up to be made into a COM file
  2117.     org    100H
  2118. ; First check for the monochrome adapter.
  2119. start:    int    11H        ; set ax = equipment flag
  2120.     and    al,30H        ; mask off all but video bits
  2121.     cmp    al,30H        ; test for monochrome adapter
  2122.     jne    exit        ; jump if not monochrome
  2123. ; Now check for incorrect cursor mode returned from the Bios
  2124.     mov    ah,3        ; call bios to get cursor type
  2125.     int    10H        ;
  2126.     cmp    cx,0607H    ; check for invalid (color) type
  2127.     jne    exit        ; jump if not a bad value
  2128. ; At this point we know that the monochrome adapter is in use and that
  2129. ; the bios cursor mode is incorrect.
  2130. ; Call the bios to set the cursor type correctly.
  2131.     mov    cx,080cH    ; use correct cursor type
  2132.     mov    ah,1        ; call bios to set cursor type
  2133.     int    10H
  2134. exit:    mov    ah,0        ; exit back to DOS
  2135.     int    21H
  2136. code    ends
  2137.     end    start
  2138. ---(cut)---
  2139. Here is the executable CURSOR.COM program, uuencoded (decode with uudecode):
  2140. ---(cut)---
  2141. begin 644 CURSOR.COM
  2142. =S1$D,#PP=1&T`\T0@?D'!G4'N0P(M`'-$+0`S2$`/
  2143. ``
  2144. end
  2145. ---(cut)---
  2146. and here again as a BOO file (decode with MSBPCT.EXE):
  2147. ---(cut)---
  2148. CURSOR.COM
  2149. cA4T<3``MA6d0ld@POT71WD7^@`8]07=4;@0cB40~0
  2150. ---(cut)---
  2151.  
  2152. (21) NETWORKS
  2153.  
  2154. When communicating across certain network pathways, the longest burst of
  2155. information tolerated from the PC can be rather short. For example, the LAT
  2156. path with SET PORT DECNET (PATHWORKS) has a limit of 256 bytes and the SET
  2157. PORT TES path has a limit of 512 bytes in a burst (or less, depending on the
  2158. TES release).  Longer bursts can cause the network software on one end or the
  2159. other to drop the connection:
  2160.  
  2161.  1. During file transfer, when sending files from the PC using long packets
  2162.     and/or sliding windows.  The total size of the packets in the window
  2163.     (packet length times the number of window slots) must be less than the
  2164.     burst limit for the network.
  2165.  
  2166.  2. During VT320 terminal emulation, if the host application (such as VMS
  2167.     or UNIX WordPerfect) sends a Terminal State or Color Palette Request
  2168.     escape sequence, DECRQTSR, "ESC [ 2 ; 2 $ u".  The response to this
  2169.     request is more than 200 characters long and has been known to break
  2170.     LAT and TES connections.
  2171.  
  2172. This is not a Kermit problem, but rather a limitation (or bug) in the
  2173. underlying networking method.  Workarounds include:
  2174.  
  2175.  1. If you have a DECnet LAT connection, make a DECnet CTERM connection
  2176.     instead (i.e. unload your LAT.EXE TSR and load the CTERM TSR instead).
  2177.  
  2178.  2. For VMS connections, enable Xon/Xoff flow control in MS-DOS Kermit and
  2179.     tell VMS to SET TERM/HOSTSYNC/TTSYNC.
  2180.  
  2181.  3. Use a different networking method, e.g. TCP/IP instead of DECnet.
  2182.  
  2183. DECnet/DOS PATHWORKS LAT.EXE is a protocol stack sitting on the top of the
  2184. DECnet stack and is independent of LAN adapter providing LAT (Local Area
  2185. Transport) service, primarily intended for terminal emulation over Ethernet.
  2186. Different versions of PATHWORKS come with different versions of LAT.EXE, which
  2187. work differently.  If you have trouble with LAT.EXE, try loading it in
  2188. conventional memory rather than expanded memory.
  2189.  
  2190. On DEC PATHWORKS LAT connections, it is often necessary to tell the LAT
  2191. control program to reserve enough memory for all of the local LAT host names.
  2192. By default, space for 16 names is allocated.  Increase your LAT control
  2193. program's memory allocation if you have more than 16 hosts on your DECnet
  2194. network.  Also, remove all permanent LAT names from your database and let the
  2195. network provide them (this can mean waiting a minute or two for all broadcasts
  2196. to be heard).
  2197.  
  2198. When making LAT connections from within Windows, make sure LAT is loaded in
  2199. conventional memory.  Note that under Windows, several copies of Kermit can be
  2200. run simultaneously, each of them with a separate LAT connection, if LAT has
  2201. been configured to provide the neccessary session control blocks (SCBs) to
  2202. handle extra sessions.
  2203.  
  2204. If you see the "network not available" message when attempting to SET PORT
  2205. DECNET: (1) make sure that LAT, CTERM, or both are loaded; (b) if you loaded
  2206. LAT into expanded memory, make sure it does not conflict with the memory usage
  2207. of other devices, e.g. A000-BFFF for the video adapter; and (c) that you have
  2208. allocated sufficient SCBs and hostname table space.
  2209.  
  2210. To use PATHWORKS and Kermit's built-in TCP/IP support at the same time, use
  2211. the PKTDLL shim, available in Columbia University's packet-driver collection.
  2212.  
  2213. Sending BREAK over network connections via SET PORT BIOS1 + Int 14h
  2214. interceptor may or may not work, depending upon the actual network and drivers
  2215. in use.  Kermit uses the BREAK facility if the driver and network support it.
  2216.  
  2217. Kermit has no way to set or show the speed or parity used by a Novell
  2218. NASI/NACS communications server. You can do this from the NASI menu.
  2219.  
  2220. Reportedly, when running Kermit on DOS 6.0 client on a Novell 3.11 network
  2221. with a NASI 3.0 Communications server, Windows 3.1 crashes upon exiting
  2222. Kermit, and removing EMM386.EXE from the CONFIG.SYS file fixes the problem.
  2223.  
  2224. Reportedly, when PCs are connected to Novell networks, "if there is not both a
  2225. system and a personal NetWare login script, however brief, then the default
  2226. LOGIN.EXE script will eat your DOS Path.  Be aware that DOS 6.2 has some
  2227. funnies about handling AUTOEXEC.BAT and the master environment.  Also ensure
  2228. you are running without SETVER affecting the NetWare shells (i.e. use the
  2229. proper NetWare shell so no SETVER is needed)."
  2230.  
  2231. Symptom: PC no longer works after installing a network board.  Diagnosis: a
  2232. 16-bit VGA display adapter is running in 16-bit mode.  Cure: Jumper it back to
  2233. 8 bits and all should start working again.
  2234.  
  2235. Reportedly, PC-NFS prevents applications programs such as Kermit from creating
  2236. a file in the root directory of a PC-NFS disk drive.  When the applications
  2237. program asks if a particular file exists in the root, PC-NFS always responds
  2238. with "volume label present", whether or not the actual file is present.
  2239.  
  2240. MS-DOS Kermit 3.13 and later no longer supports SET PORT TELAPI for Novell LAN
  2241. Workplace for DOS (LWP) versions prior to 4.0. Versions 3 and 4 are
  2242. incompatible (from the Kermit support point of view), and v3.x had many
  2243. internal difficulties. If you need to make TELAPI connections with Kermit,
  2244. either upgrade your LWP software or use an older version of Kermit.
  2245.  
  2246. The Interconnections TES older product, which Kermit fully supports, has a
  2247. menu that pops up if you type the TES "hot key", Alt-LeftShift-T.  Reportedly,
  2248. the pop-up menu interferes with the LK250 driver that is distributed with
  2249. Kermit (it works fine with regular IBM keyboards).  Workaround: use TES's
  2250. text-mode menu, which Kermit brings up if you type Alt-Home during terminal
  2251. emulation.  MS-DOS Kermit 3.13 and later transparently support both older and
  2252. the latest TES products.
  2253.  
  2254. However, note that TES itself is somewhat fragile, and does not handle long
  2255. bursts of data very well.  So when using the TES path, use shorter packets.
  2256.  
  2257. Reportedly, when making NETBIOS or 3COM(BAPI) connections under Windows,
  2258. characters from a DOS window can show up in the Kermit window, and this can be
  2259. fixed by setting Kermit's foreground and background priority to 150 and
  2260. setting the priority of the other DOS applications to 5000.
  2261.  
  2262. (21.1) NETBIOS STATION-TO-STATION CONNECTIONS
  2263.  
  2264. The procedure for establishing a NETBIOS PC-to-PC connection is as follows:
  2265.  
  2266.  1. On the first PC:
  2267.       SET NETBIOS NAME <xxx>
  2268.       SET PORT NETBIOS
  2269.       SERVER
  2270.  
  2271.  2. On the second PC:
  2272.       SET PORT NETBIOS <xxx>.K
  2273.  
  2274. <xxx> is any name you choose, up to 14 characters long.  Now you can initiate
  2275. file transfer and other Kermit protocol operations from the second PC. If you
  2276. want the two PCs to "chat" in terminal mode, send a FINISH command from the
  2277. second PC (or type Ctrl-C on the first, server, PC), and then give the
  2278. following commands to both PCs:
  2279.  
  2280.   SET TERMINAL NEWLINE ON
  2281.   SET LOCAL-ECHO ON
  2282.   CONNECT
  2283.  
  2284. (21.2) TCP/IP CONNECTIONS
  2285.  
  2286. As of version 3.11, MS-DOS Kermit contains built-in TCP/IP and TELNET protocol
  2287. support.  This allows a PC equipped with a network board that is connected to
  2288. a TCP/IP network to communicate with any other node on the network, without
  2289. requiring any additional TCP/IP software on your PC.  Read NETWORKS\SETUP.DOC
  2290. for details.
  2291.  
  2292. Winsock TCP/IP stacks are strictly for pure Windows (and NT) programs, not for
  2293. DOS programs.  MS-DOS Kermit is a DOS program; it runs from the DOS prompt and
  2294. within DOS emulator boxes in various operating systems, and cannot access
  2295. Winsock.  If you want to make a TCP/IP connection with Kermit from within
  2296. Windows, you have to unload Winsock and use Kermit's own built-in TCP/IP
  2297. capability directly over a packet driver or ODI driver.
  2298.  
  2299. Linemode TELNET is not supported.  This is the mode in which the TELNET client
  2300. buffers up "lines" and then sends them all at once when the user hits the
  2301. Enter key, and which allows local editing before each line is sent.  This has
  2302. been observed to cause problems with only one TELNET server so far: the UNISYS
  2303. 2200 TIP transaction processing system.  In most cases, Kermit TELNET works
  2304. fine with linemode TELNET servers, e.g. on IBM mainframes running VM/CMS.
  2305.  
  2306. Domain name resolution might not work when you give a nickname instead of a
  2307. complete host name in the SET PORT TCP/IP command and Kermit transforms the
  2308. nickname into the desired complete host name by combining it with your TCP/IP
  2309. DOMAIN.  Kermit does not use a special Hosts file to relate nicknames to
  2310. complete host names.  Workarounds: use a complete hostname, an IP host number,
  2311. or set your TCP/IP DOMAIN correctly.  Domain Name Servers are specified by
  2312. their IP number rather than name.
  2313.  
  2314. Version 3.13 and later support multiple gateways on the local network.
  2315. Choosing the incorrect gateway normally results in that gateway sending an
  2316. ICMP Redirect message to Kermit indicating the preferred gateway, and Kermit
  2317. displays such messages.  Versions 3.11 and 3.12 did not implement ICMP
  2318. Redirects.
  2319.  
  2320. Kermit's TCP/IP gateway must be on your physical network.
  2321.  
  2322. Kermit is not an IP router handling routing broadcast traffic; it does not
  2323. listen to RIP, etc.  Instead it depends upon the router to do that and then
  2324. tell Kermit what to do.  Kermit computes whether an IP destination is on the
  2325. local network; if it isn't Kermit uses the first IP gateway as the local
  2326. target for ARPing and further relaying.  It is up to that gateway to either
  2327. accept the traffic or to issue an ICMP Redirect indicating another gateway.
  2328.  
  2329. For TCP/IP connections to IBM mainframes in full screen 3270 mode, you need an
  2330. intermediate host or device to do the 3270/ASCII terminal conversion.  Typical
  2331. setup is a TCP/IP terminal server with its serial lines connected to a
  2332. protocol converter (e.g. IBM 7171), a UNIX host that has tn3270 available, or
  2333. a terminal server (like Cisco) that does 3270 terminal emulation. To transfer
  2334. files with an IBM mainframe, you might have to tell MS-DOS Kermit to SET
  2335. PARITY SPACE, and you might have to restrict the packet length.
  2336.  
  2337. For IBM mainframe linemode TELNET connections, automatic appearance of the
  2338. login banner might not work.  Type a carriage return (Enter) to get the login
  2339. banner.     Local-echo and linemode operation are negotiated automatically.
  2340.  
  2341. BOOTP requests are handled correctly within the local network, and have been
  2342. tested successfully through Novell's BOOTP forwarder NLM and through Cisco
  2343. routers with software version 8.2.7.  In the SET TCP/IP ADDRESS command, the
  2344. words BOOTP and RARP must be spelled out in full.  Version 3.11 and 3.12
  2345. support original RFC951 and 1048 BOOTP protocol, and v3.13 adds support for
  2346. downloading of the PC's full host (domain) name as specified in RFC1395.  See
  2347. KERMIT.HLP (MSKERM.HLP) for details.
  2348.  
  2349. EXIT from Kermit closes your TCP/IP session (just like HANGUP).     PUSHing or
  2350. running DOS commands from Kermit keeps it open.     In version 3.12 and later,
  2351. EXITing while a session is active causes a warning / confirmation message to
  2352. appear so you can change your mind.
  2353.  
  2354. Version 3.11 of MS-DOS Kermit uses only the TELNET port (23) for SET PORT TCP
  2355. connections.  Version 3.12 and later allow you to specify any desired port
  2356. (except 25) in the SET PORT TCP command, after the host name or address.
  2357.  
  2358. MS-DOS Kermit honors TELNET protocol negotiations, including terminal type and
  2359. ECHO/SGA.  Version 3.11 always sends "VT100" as its terminal type; later
  2360. versions send MS-DOS Kermit's active terminal type or allows the user to
  2361. create an override string with command SET TELNET TERM-TYPE.
  2362.  
  2363. Not supported: FTP, TFTP, automatic setting of PC date/time from network, 3270
  2364. emulation (tn3270), etc.  There is no PING command, but MS-DOS Kermit responds
  2365. when PINGed and when probed by Traceoute.  Multiple simultaneous TCP/IP
  2366. sessions are supported in v3.13 and later; see KERMIT.HLP for details.
  2367.  
  2368. Version 3.12 and later support inbound connections to MS-DOS Kermit.  Inbound
  2369. TELNET connections do not copy DOS screens, etc, like Carbon Copy, PC
  2370. Anywhere, etc; a Kermit-to-Kermit connection is made instead.  To configure
  2371. MS-DOS Kermit to be a TCP/IP server, give the following command:
  2372.  
  2373.   SET PORT TCP * [ <port> ]
  2374.   SET SERVER LOGIN <username> [ <password> ]  ; (recommended but not required)
  2375.   SERVER
  2376.  
  2377. Use asterisk instead of an IP name or address, followed optionally by a TCP
  2378. port number (the default is 23 = TELNET), and then enter server mode.  Anybody
  2379. who TELNETs to your PC will see a brief screen message telling them to escape
  2380. back to their local Kermit prompt and issue commands from there, for example:
  2381.  
  2382.   REMOTE LOGIN <usename> <password>
  2383.   REMOTE DIRECTORY
  2384.   GET OOFA.TXT
  2385.  
  2386. Chat sessions can also be set up as described in the NETBIOS section above.
  2387.  
  2388. Kermit's TCP/IP support cannot be used simultaneously with PC NFS because both
  2389. applications want to register use of ARP and IP with the packet driver, but
  2390. each protocol can only be assigned to one application.    This is only one
  2391. particular case of the more general rule:
  2392.  
  2393.   Only one TCP/IP-based application can use a LAN adapter at once.
  2394.  
  2395. which also applies to DesqView/X and other TCP/IP products for the PC.
  2396. See NETWORKS\SETUP.DOC for a detailed discussion.
  2397.  
  2398. The SET TCP/IP commands return failure codes if there is a parse error.     SET
  2399. PORT TCP/IP returns error status in Kermit variable \v(tcpip_status), with
  2400. the following values:
  2401.  
  2402.   SUCCESS          0
  2403.   NO_DRIVER          1
  2404.   NO_LOCAL_ADDRESS    2
  2405.   BOOTP_FAILED          3
  2406.   RARP_FAILED          4
  2407.   BAD_SUBNET_MASK     5
  2408.   SESSIONS_EXCEEDED   6
  2409.   HOST_UNKNOWN          7
  2410.   HOST_UNREACHABLE    8
  2411.   CONNECTION_REJECTED 9
  2412.  
  2413. The connection is not opened until the first attempt to communicate with the
  2414. remote host: CONNECT, PAUSE, OUTPUT, etc.  While connection establishment is
  2415. in progress, you can't interrupt the program with Ctrl-C. Use IF SUCCESS /
  2416. FAILURE after PAUSE 0 to check if the connection is open, for example:
  2417.  
  2418.   DEFINE TELNET SET PORT TCP \%1 \%2, PAUSE 0, IF SUCCESS CONNECT
  2419.  
  2420. Or examine variable \v(tcpip_status) for success, for example:
  2421.  
  2422.   DEFINE TELNET SET PORT TCP \%1 \%2, PAUSE 0, IF = 0 \V(TCPIP_STATUS) CONNECT
  2423.  
  2424. The \%2 variable is for the optional TCP port number in v3.12 and later.
  2425.  
  2426. TCP/IP performance hints: Set your Kermit packet size to 500 or larger to
  2427. achieve most data sent per network packet.  A convenient setting is SET 
  2428. RECEIVE PACKET 1000, SET WINDOW 4, resulting in four 1000-byte packets in a 
  2429. window.  Experiment with other combinations.
  2430.  
  2431. SET FLOW NONE lets TCP/IP do the flow control and eliminates Kermit's
  2432. need to check for Xon/Xoff.  In most situations beyond the local network 
  2433. performance will be limited by the long distance lines rather than by the PC.
  2434.  
  2435. (End of MSKERM.BWR / KERMIT.BWR)
  2436.