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

  1. From cmg  Thu Jan 14 11:57:46 1993
  2. Return-Path: <cmg>
  3. Received: by watsun.cc.columbia.edu (5.59/FCB/jba)
  4.     id AA26555; Thu, 14 Jan 93 11:57:46 EST
  5. Date: Thu, 14 Jan 93 11:57:43 EST
  6. From: Christine M Gianone <cmg@watsun.cc.columbia.edu>
  7. To: Info-Kermit
  8. Subject: Info-Kermit Digest V17 #1
  9. Reply-To: Info-Kermit@watsun.cc.columbia.edu
  10. Queries-To: Info-Kermit-Request@WATSUN.CC.COLUMBIA.EDU
  11. Errors-To: Info-Kermit-Request@watsun.cc.columbia.edu
  12. Message-Id: <CMM.0.90.4.727030663.cmg@watsun.cc.columbia.edu>
  13.  
  14. Info-Kermit Digest         Thu, 14 Jan 1993        Volume 17 : Number 1
  15.  
  16. Today's Topics:
  17.     StarGROUP Patch for MS-DOS Kermit 3.12
  18.     MS-DOS Kermit, COM3, COM4, and Internal Modems
  19.  
  20. Digest submissions may be sent to Info-Kermit@WATSUN.CC.COLUMBIA.EDU or
  21. KERMIT@CUVMA.BITNET.  Requests for addition to or deletion from the
  22. Info-Kermit subscriber list should be sent to LISTSERV@CUVMA.BITNET or
  23. LISTSERV@CUVMA.CC.COLUMBIA.EDU.  These messages must be of the form:
  24.  
  25.   SUBSCRIBE I$KERMIT <your-personal-name>    (To start a subscription)
  26.   UNSUBSCRIBE I$KERMIT                       (To cancel a subscription)
  27.   REGISTER I$KERMIT <your-personal-name>     (To correct your name)
  28.  
  29. Kermit files may be obtained over networks and by mail order.  On the
  30. Internetwork, use FTP to log in to host WATSUN.CC.COLUMBIA.EDU, a SUN-4/280
  31. running UNIX (SUNOS 4.1), IP host number 128.59.39.2.  Login as user anonymous
  32. (note, lower case), any password, and GET or MGET (MULTIPLE GET) the desired
  33. files.  The file kermit/read.me is a general guide to where things are.  The
  34. Kermit files are in directories kermit/a, kermit/b, kermit/c, kermit/d, and
  35. kermit/e.  Test versions are in kermit/test.  All files in these directories
  36. should be transferred in text (ASCII) mode.  Binaries are in kermit/bin (use
  37. ftp in binary mode).  All files on watsun have lowercase names, and case is
  38. significant.
  39.  
  40. You can also get Kermit files over the BITNET/EARN network; to get started
  41. send a message with text HELP to KERMSRV, the Kermit file server, at host
  42. CUVMA.  For detailed instructions, read the file kermit/a/aanetw.hlp
  43. (AANETW.HLP on KERMSRV).  To order by mail, request a complete list of Kermit
  44. versions and an order form from Kermit Distribution, Columbia University
  45. Center for Computing Activities, 612 West 115th Street, New York, NY 10025
  46. USA.
  47.  
  48. ----------------------------------------------------------------------
  49.  
  50. Date: Tue, 12 Jan 93 11:30:00 EST
  51. >From: Christine M. Gianone <cmg@watsun.cc.columbia.edu>
  52. Subject: StarGROUP Patch for MS-DOS Kermit 3.12
  53. Keywords: StarGROUP, MS-DOS Kermit 3.12, Patches for MS-DOS Kermit
  54.  
  55. >From Joe Doupnik, author of MS-DOS Kermit: Patches 11 and 12 to cure a bug
  56. that caused AT&T StarGROUP network connections to be lost after shelling to
  57. DOS (RUN, PUSH, etc).  The updated patch file is in kermit/a/mskermit.pch on
  58. watsun, MSKERMIT PCH on KERMSRV.  Copy it to the same directory where you
  59. keep your MSKERMIT.INI file, and make sure there is a PATCH command at the
  60. top of your MSKERMIT.INI file.
  61.  
  62. Remember, MS-DOS Kermit patch files only work with the binary KERMIT.EXE
  63. (MSVIBM.EXE) distributed by Columbia University; they will not work with
  64. versions that you have built yourself from source code, or that have been
  65. modified in any manner.
  66.  
  67. ------------------------------
  68.  
  69. Date: Tue, 12 Jan 93 11:40:00 EST
  70. >From: Frank da Cruz <fdc@watsun.cc.columbia.edu>
  71. Subject: MS-DOS Kermit, COM3, COM4, and Internal Modems
  72. Keywords: MS-DOS Kermit and COM3 and COM4
  73. Keywords: MS-DOS Kermit and Internal Modems
  74. Keywords: Modems and MS-DOS Kermit, COM3/COM4 and MS-DOS Kermit
  75.  
  76. With the arrival of the new breed of low-cost high-speed internal modems have
  77. come ever-increasing numbers of queries about how to use them with MS-DOS
  78. Kermit, especially on COM3 or COM4.  With the help of Joe Doupnik (author of
  79. MS-DOS Kermit) and John Klensin at MIT, we have put together what I hope will
  80. be a useful guide to this complicated topic.  This text has also been added
  81. to the MSKERM.BWR file.
  82.  
  83.  
  84. TROUBLESHOOTING MS-DOS KERMIT SERIAL PORT AND MODEM PROBLEMS
  85.  
  86.  
  87.   "Why can't MS-DOS Kermit find my COM3 or COM4 port?"
  88.   "Why can Kermit send characters to my COM port, but not read them?"
  89.   "Why doesn't Kermit work with my internal modem?"
  90.  
  91.  
  92. First, rule out the obvious:  Is everything connected and turned on?  Did you
  93. give a SET PORT command for the right device, and did you give it BEFORE any
  94. other device-related commands, such as SET SPEED and SET PARITY?  Remember,
  95. port-related settings apply to the port that was selected in the most recent
  96. SET PORT command, so a proper sequence would be, for example:
  97.  
  98.   SET PORT COM2       ; First select the port you want to use.
  99.   SET SPEED 19200     ; Then set the desired speed on the selected port,
  100.   SET PARITY EVEN     ; and other parameters for this port, such as parity,
  101.   SET FLOW RTS/CTS    ; flow control,
  102.   SET LOCAL-ECHO OFF  ; and CONNECT-mode echoing.
  103.  
  104. Each of these parameters is remembered for each port, so switching ports (e.g.
  105. SET PORT COM1 after you have given the above sequence of commands) switches
  106. all of these parameters to their previous (or default) values for the port you
  107. have switched to.
  108.  
  109. To see the current port-related parameters, type the MS-DOS Kermit command:
  110.  
  111.   SHOW COMMUNICATIONS
  112.  
  113. This displays all the relevant information about your currently selected
  114. communication device, which is COM1 by default.  Check the settings carefully
  115. to be sure they are what you intended.
  116.  
  117.  
  118.   * * * *
  119.   The following discussion, which applies to MS-DOS Kermit versions 3.11 and
  120.   3.12, is detailed and technical, but most of it boils down to (a) installing
  121.   a patch; (b) telling Kermit two numbers, the port address and IRQ value; and
  122.   (c) fiddling with your modem.  Keep that in mind as you read more about PC
  123.   hardware than you ever wanted to know.
  124.  
  125.  
  126. HOW A PHYSICAL COMMUNICATION PORT IS ASSOCIATED WITH A DOS COMn DEVICE
  127.  
  128. DOS PCs come with full support for two communication ports, COM1 and COM2, but
  129. with provisions for at least two more, COM3 and COM4.  The basic problem with
  130. COM3 and COM4 is that they are not well (or consistently) supported in most
  131. types of PCs, as are COM1 and COM2 which rarely (by themselves) cause any
  132. problems.  This discussion considers only COM1-COM4, since higher-numbered COM
  133. ports are rare, and in any case are not presently supported by MS-DOS Kermit.
  134.  
  135. The digit in the port name is an index into an area in memory that contains
  136. the address of the serial port hardware.  The BIOS (the PC's Basic Input/Ouput
  137. System) has four words reserved starting at segment 40 (hexadecimal), word 0,
  138. to hold the addresses of the first four COM ports.  Word 0 defines COM1, word
  139. 2 (two bytes per word) defines COM2, word 4 COM3, and word 6 COM4.  To view
  140. these addresses:
  141.  
  142.   C:\> debug             (start the debug program)
  143.   -d 40:0                (display segment 40)
  144.   -q                     (quit the debug program)
  145.  
  146. ("C:\>" is the DOS prompt, "-" is the debug prompt.)  Here are the results
  147. of this operation on a PS/2 with 3 COM ports:
  148.  
  149.   0040:0000  F8 03 F8 02 20 32 00 00-BC 03 00 00 00 00 60 03  .... 2........`.
  150.   0040:0010  65 46 00 80 02 00 00 20-00 00 38 00 38 00 3E 34  eF..... ..8.8.>4
  151.   0040:0020  20 39 78 2D 2E 34 78 2D-0D 1C 64 20 20 39 34 05   9x-.4x-..d  94.
  152.   0040:0030  30 0B 3A 27 30 0B 0D 1C-75 16 67 22 20 39 00 00  0.:'0...u.g" 9..
  153.   0040:0040  0A 00 C3 00 00 00 00 00-00 03 50 00 00 10 00 00  ..........P.....
  154.   0040:0050  00 18 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
  155.   0040:0060  0E 0D 00 D4 03 29 22 76-07 35 18 FF F9 C8 0F 00  .....)"v.5......
  156.   0040:0070  00 00 34 12 00 01 00 00-14 14 14 20 01 01 01 01  ..4........ ....
  157.  
  158. The first line contains the COM port information (ignore the other lines, as
  159. well as the funny characters on the right).  "F8 03" is the 2-byte COM1
  160. address, expressed in hexadecimal (base 16) with the low byte shown first.
  161. Thus the actual COM1 address is 03F8 hex, which is expressed in Kermit
  162. commands as \x03f8.  The COM2 address is 02F8, the COM3 address is 3220, and
  163. (since there is no COM4) the COM4 address is 0000.  That is how both DOS and
  164. the BIOS (and hence many communication programs, including Kermit) understand
  165. which ports are defined, and where to find them.
  166.  
  167. When your PC is powered up, the BIOS startup code checks for serial port
  168. hardware (that is, a Universal Asynchronous Receiver/Transmitter, or UART) at
  169. the two port addresses 03F8 and 02F8.  If it finds a UART at the first address
  170. then that address is placed in word 40:0 and declared to be COM1.  Then the
  171. BIOS tries the second address and if successful this address goes into the
  172. first available word at that time, typically 40:2 as the address of COM2.
  173. Thus if you remove a COM1 device then a previously COM2 device will appear in
  174. the COM1 Bios storage area and become COM1 to DOS and Kermit.  What happens to
  175. the other two words depends on the PC model and BIOS.  The IBM PS/2 BIOS fills
  176. in all four words on startup, but most others (there are exceptions) handle
  177. only the first two because that's how IBM did it with the original PCs.
  178.  
  179.   So... just setting switches or jumpers on a serial port board or 
  180.   internal modem does NOT define the board to be a particular COM port.
  181.  
  182. Why, then, do some communication programs work with COM3 and COM4 without any
  183. special fiddling?  The answer is that these programs ASSUME that COM3 and COM4
  184. are found at certain addresses, even when there are no entries in segment 40,
  185. the BIOS communication-port area.  Some of these programs show you their
  186. assumptions in a menu (and might allow you to change them), others do not.
  187. The assumed values are usually as follows:
  188.  
  189.   Port   Assumed Address (hexadecimal)
  190.   COM1        03F8
  191.   COM2        02F8
  192.   COM3        03E8
  193.   COM4        02E8
  194.  
  195.   NOTE: PS/2s use different addresses for COM3 and COM4 -- 3220 and 3228,
  196.   respectively, but these addresses are installed by the BIOS into segment 40
  197.   when the PS/2 is started, so well-behaved communication software (like
  198.   Kermit) will use these addresses rather than the defaults listed above.
  199.   Ill-behaved software will ignore the segment-40 addresses and erroneously
  200.   attempt to use its own values, which, with luck, might be correct but, more
  201.   likely, will not work, or at worst, can disrupt normal operation of your PC.
  202.  
  203. Unchecked use of an assumed port address is DANGEROUS if the device is not
  204. really where the software expects, but the software goes ahead and uses the
  205. address anyway, in particular if some other type of device, say a network
  206. adapter, is at the given address.  It can also produce unwanted conflicts
  207. under Windows, OS/2, and DesqView, whose drivers often set the port's
  208. segment-40 word to zero when they want to use the port exclusively and without
  209. interference, and then restore the real address when they are done, and
  210. similar unwanted interference with Int 14H redirectors that allow serial-port
  211. communication software to be used on network connections.
  212.  
  213. Unlike most other PC communication software, Kermit will NOT attempt to use a
  214. communications port unless:
  215.  
  216.   (a) It finds its address in the BIOS comm-port area, segment 40, or:
  217.   (b) You specify the address yourself
  218.  
  219. AND:
  220.  
  221.   The device at the given address passes certain tests, in which registers
  222.   (addresses related to the port's base address) contain certain values that
  223.   are legitimate for a UART.
  224.  
  225. In other words, KERMIT IS MORE CAREFUL than most other communication software,
  226. because does not want to chance disrupting normal operation of (or damaging)
  227. your PC.
  228.  
  229.  
  230. SPECIFYING THE PORT ADDRESS
  231.  
  232. If you tell MS-DOS Kermit to SET PORT COMn (where n is 1, 2, 3, or 4), and
  233. Kermit responds:
  234.  
  235.   Warning, no hardware for this serial port.
  236.   This port will be operated through the BIOS as BIOSn
  237.  
  238. it means that Kermit did not find an address for the port in the BIOS area or
  239. it did find one but the hardware at that address did not look like an IBM-PC
  240. compatible UART.  If the cause of the message is a missing address, you can
  241. tell MS-DOS Kermit the address of the port by issuing the following command:
  242.  
  243.   SET COMn \xhhhh
  244.  
  245. where n is 1, 2, 3, or 4, and hhhh are four hexadecimal digits (0-9, A-F)
  246. representing the 16-bit address.  This command not only informs Kermit of the
  247. address, but also inserts the address into the appropriate word in segment 40
  248. so other programs can find the port (assuming they follow the rules), and so
  249. you don't have to give this command to Kermit again until after the next time
  250. you reboot.
  251.  
  252. After giving the SET COMn command, give a SET PORT COMn command for the same
  253. port.  The SET COMn command must come first, then the SET PORT COMn command,
  254. as in this example for COM3:
  255.  
  256.   set com3 \x3f8   ; Specify the address of COM3
  257.   set port com3    ; Select COM3
  258.  
  259. How do you know what addresses to give?  Suppose you have purchased an
  260. internal modem or an add-on serial port and you want to install it as a
  261. particular COM port, say COM3.  The installation instructions for your device
  262. will tell you how to do this.  The device must be configured -- generally by
  263. setting little switches or installing or removing jumpers.  The manual should
  264. tell you the address for each COM port.  You have to make sure that the
  265. address that you have configured for the device agrees with the address that
  266. Kermit will use.
  267.  
  268. Although it is not recommended that you guess at address values, sometimes it
  269. is the only way (as often with inherited equipment), for which occasions here
  270. is a list of the addresses commonly used for serial ports and internal modems:
  271.  
  272.   Port   Likely Addresses (hexadecimal)
  273.   COM1       03F8
  274.   COM2       02F8
  275.   COM3       03E8, 3220
  276.   COM4       02E8, 3228, 02E0
  277.  
  278. It is relatively unlikely that you will find a serial port at any address not
  279. listed above, but you might find a port at another port's expected address.
  280. The use of these addresses in SET COMn commands should be relatively harmless
  281. (provided you don't also specify an interrupt, explained later); if there is
  282. no error message, Kermit found a possibly usable port.  If there is an error
  283. message, no harm should have been done.
  284.  
  285. Now let's look at the other cause for the "This port will be operated through
  286. the BIOS" message, namely that an address was found in segment 40, but the
  287. device at that address does not appear to be a genuine serial port.  Why would
  288. this happen?  There are several possible explanations, including:
  289.  
  290.  1. The device is at a different address.  Check your device's configuration
  291.     again, or else your SET COMn command.
  292.  
  293.  2. Your device is indeed at the given address, but its registers do not
  294.     contain values expected of a true PC serial port.  In that case, BIOS
  295.     operation is the only alternative.
  296.  
  297.  3. Your device is at the given address, but there is a conflict with another
  298.     device at that address or the machine's bus speed (not CPU speed) is set 
  299.     so high that the hardware test gave confusing results.
  300.  
  301. When Kermit operates a port through the BIOS, rather than directly, it will
  302. be MUCH slower and might not work at all because the BIOS requires the CD,
  303. CTS, and DSR modem signals to be asserted by the device connected to the port
  304. (and the CD signal is normally and by default NOT asserted by a modem before
  305. it has made a connection to another modem).  In that case, you will have to
  306. configure the device (e.g. modem) to assert DSR, CTS, and CD always, or wire
  307. your modem cable to fake these signals (e.g. by cross-connecting them to DTR).
  308.  
  309. Assuming you have found the right address for your COM3 or COM4 port (or
  310. nonstandard address for COM1 or COM2), and you want these addresses to be set
  311. correctly for Kermit at all times, even if it doesn't read its initialization
  312. file, you can put a command like the following in your AUTOEXEC.BAT file:
  313.  
  314.   set kermit=com3 \x3e8; com4 \x2e8;
  315.  
  316. If you want the addresses to be set correctly in the BIOS communications area,
  317. so all applications (not just Kermit), can find the ports, put a line like
  318. this in your AUTOEXEC.BAT (substituting the appropriate ports and addresses):
  319.  
  320.   kermit -f nul, set com3 \x3e8, set com4 \x2e8
  321.  
  322.  
  323. INTERRUPTS
  324.  
  325.   "I can send characters to the modem, but I never see any on my screen."
  326.  
  327. This common complaint (often arising from the user's observation of the modem
  328. lights and speaker), also known as "can-talk-but-not-listen syndrome",
  329. usually means that the communication device was found at the expected address,
  330. but Kermit's idea of its interrupt is wrong.  What's an interrupt?
  331.  
  332. To achieve high-speed communication without interfering with other
  333. applications, Kermit reads characters from a serial device using "interrupts".
  334. Whenever a character arrives at the serial device, the device sends a signal,
  335. called an interrupt, that may be "caught" by application software such as
  336. Kermit, leaving the application free to do other work in the meantime without
  337. having to constantly look at the serial port to see if any characters have
  338. arrived (an operation called "polling", which is used by some of the other
  339. communications programs).  Communications programs that use polling are not
  340. sensitive to interrupts being set properly and may therefore work with
  341. improperly-configured machines where Kermit will not (unless you give it the
  342. required information), but they also tend to take over the entire computer.
  343.  
  344. In contrast to polling programs, Kermit is normally waiting for input from the
  345. keyboard, and is therefore idle if you are not typing and no characters are
  346. arriving at the communication port.  In multi-tasking environments such as
  347. Windows or OS/2, this allows other applications the largest possible share of
  348. the CPU while Kermit is running.
  349.  
  350. When a character arrives at the port, an interrupt signals Kermit to wake up
  351. from its keyboard-wait state and read the character from the port.  But Kermit
  352. needs a way of knowing which device the interrupt came from, so it will not
  353. erroneously read characters from the wrong one.  The device is identified by
  354. an Interrupt Request (IRQ) number, a small integer like 3 or 4.  The BIOS does
  355. not record the IRQ number used by a serial port because the BIOS uses polling
  356. rather than interrupts for serial port input and output.  Thus the
  357. communications software has to know which IRQ to use.  By convention from the
  358. original IBM PC, COM1 uses IRQ 4 and COM2 uses IRQ 3.  There is no standard
  359. for COM3 and above, but certain conventions are normally followed:
  360.  
  361.   Port   PS/2  Others
  362.   COM3   IRQ3   IRQ4
  363.   COM4   IRQ3   IRQ3
  364.  
  365.   WARNING: Certain serial port cards and internal modems allow
  366.   themselves to be configured with different IRQ numbers (such as 9),
  367.   even on COM1 or COM2.  Check your device's installation instructions.
  368.  
  369. Some types of PCs (PS/2s, for example) allow sharing of IRQ numbers,
  370. provided each application has its own interrupt service routine and each such
  371. routine is built to chain interrupts properly (i.e. pass them along to other
  372. applications if they have arrived at the wrong place).  This works, for
  373. example, with Kermit on a PS/2; you can run two copies of Kermit under
  374. Microsoft Windows, one using COM2/IRQ3 and the other using COM3/IRQ3 (i.e. two
  375. ports, same IRQ), both doing input and output simultaneously with no
  376. confusion.  On most types of PCs, however, IRQs can NOT be shared, and
  377. therefore each device must have a unique IRQ number.  This caution applies
  378. especially when you have a serial mouse on IRQ 3 or 4.
  379.  
  380. Once Kermit knows the address of a COM port, it tests to see which IRQ number,
  381. 3 or 4, the device uses.  This is a safe test and does not cause any modem
  382. signaling or communication to take place.  The PC architecture has a limited
  383. range of IRQ numbers available, and so (usually) there can not be a unique IRQ
  384. number for each serial port when there are more than two.  This results in the
  385. common limitation that no more than two serial ports can be active at once.
  386.  
  387. MS-DOS Kermit 3.12 and earlier test first for IRQ4, and then if there is no
  388. response, IRQ3.  If both tests fail, a default value is used (on PS/2s, the
  389. default is IRQ4 for COM1 and IRQ3 for COM2-4; on others is it is IRQ4 for
  390. COM1 and COM3, IRQ3 for COM2 and COM4).  No error message is given in this
  391. case, but "can-talk-but-not-listen syndrome" is a likely result.
  392.  
  393. Some add-on communication boards or internal modems are set up to use IRQ
  394. numbers other than 3 or 4 in order to avoid conflicts with COM1 or COM2 and/or
  395. to allow more than two COM ports to be active at once.  But this can be
  396. dangerous -- for example, IRQ 5 (which is sometimes used for this purpose) is
  397. also used by the hard disk controller on the PC/XT.  IRQ 7 is often used by
  398. network boards.  For this reason, Kermit does not automatically test any IRQ
  399. numbers other than 3 or 4, and does not use any other IRQ number by default.
  400.  
  401. But it is sometimes necessary, particularly on ISA (Industry Standard
  402. Architecture) bus machines (PC/ATs and compatibles) and earlier (such as PCs
  403. and XTs) to use an IRQ other than 3 or 4, for example when when an internal
  404. modem is installed as COM3 on IRQ4, and then use of COM1 prevents COM3 from
  405. working, and vice versa.  This problem can often be solved by reconfiguring
  406. the board to use an otherwise unused unique IRQ number.  Ideally this would be
  407. a normally free IRQ such as 10 or 11, but unfortunately most communication
  408. boards are not configurable for IRQs higher than 7.  Here is a brief, and
  409. definitely not comprehensive, guide to the low IRQ numbers (with IRQ numbers
  410. expressed in decimal):
  411.  
  412.   2  Normally available, but some video boards use it to obey an obsolete
  413.      standard for indicating vertical refresh.  Adjust video board jumpers
  414.      to not do this.  On 286's and above IRQ 2 is also known as IRQ 9:
  415.      same IRQ, alternate number.  Windows 3.0 had difficulty with devices
  416.      using IRQ 2, but Windows 3.1 is better.
  417.  
  418.   3  Normally COM2 and COM4.  PS/2's use IRQ 3 for all serial ports above
  419.      COM1.  IRQ3 is also a favorite "factory default" of many local area
  420.      network (LAN) adapters.
  421.  
  422.   4  Normally COM1 and informally COM3 (except on PS/2s).
  423.  
  424.   5  Secondary parallel port.  Parallel ports are rarely interrupt-driven
  425.      (except for Novell RPRINTER users) so this wire becomes free if
  426.      you unjumper the IRQ on the parallel port board.  LAN adapters are
  427.      frequently placed on IRQ 5.  PC/XTs use IRQ 5 for the hard disk.  Be
  428.      careful with this one.
  429.  
  430.   6  Floppy disk drives. Leave it alone!
  431.  
  432.   7  Primary parallel port.  Remove as described for IRQ 5.  Be careful,
  433.      LAN adapters are frequently placed here.
  434.  
  435.   9  Alias for IRQ 2.
  436.  
  437.  10  Usually free.
  438.  
  439.  11  Usually free.
  440.  
  441.  12  Used by the IBM bus mouse, otherwise usually free.
  442.  
  443.  13  QEMM traps math coprocessor errors here, otherwise frequently free.
  444.  
  445.  14  Used by hard disk on 286 and above.  Leave alone!
  446.  
  447.  15  Some SCSI controllers use this.  Usually free.
  448.         
  449. If your communication board uses an IRQ other than 3 or 4, you will experience
  450. the "can talk but not listen" syndrome when using Kermit.  To force Kermit to
  451. both talk AND listen to the device, you must inform Kermit of the device's IRQ
  452. number.  This is done in the SET COMn command, after the address:
  453.  
  454.   SET COMn <address> <irq>
  455.  
  456. for example:
  457.  
  458.   SET COM3 \x03e8 5
  459.  
  460. When you include a number (like 3, 4, 5, 6, or 7) after the port address
  461. (separated by a space), Kermit will skip its IRQ test and use the IRQ number
  462. you have specified when you next give a SET PORT command for that port.
  463.  
  464.   PLEASE NOTE that you MUST AVOID address and IRQ conflicts; these items
  465.   MUST NOT overlap existing equipment.  SERIOUS DAMAGE can result if, for
  466.   example, the IRQ number you give is the same as the one used by your
  467.   disk controller or network adapter.  Incorrect operation can result if
  468.   the interrupt is in use by a less critical device, such as a mouse.
  469.  
  470. It is necessary to specify the IRQ number in either of these two situations:
  471.  
  472.   1. The communication device uses an IRQ number other than 3 or 4.
  473.  
  474.   2. Kermit's IRQ test interferes with Windows or a similar environment,
  475.      and therefore must be skipped.
  476.  
  477. Check your PC's configuration carefully before specifying an IRQ number.
  478. Before starting Kermit, you can use certain public domain or commercial
  479. utilities, such as MAPMEM, Northgate QAPLUS, Quarterdeck MFT, or the MSD
  480. utility shipped with Windows 3.1 to get an idea of which IRQ numbers are
  481. already in use (these utilities are, of course, not foolproof -- for example,
  482. they can't tell what IRQs are used by programs that are not presently loaded).
  483.  
  484. If, even after establishing the device's interrupt correctly, Kermit still
  485. fails to operate correctly (or reliably), check to see whether:
  486.  
  487.   1. Some other device (such as a mouse or LAN adapter) is generating the 
  488.      same interrupt.
  489.  
  490.   2. Some other software (such as a mouse driver) is catching the same
  491.      interrupt.
  492.  
  493. If you find a conflict, take whatever means are at your disposal to remove it:
  494. remove the offending device driver or TSR from your CONFIG.SYS or AUTOEXEC.BAT
  495. file, or turn it off temporarily (e.g. with the MOUSE OFF command for certain
  496. mouse drivers); or reconfigure one of the conflicting devices to use a
  497. different interrupt.
  498.  
  499.  
  500. PROBLEMS WITH MODEMS
  501.  
  502.   "I just bought and installed an XYZ V-Dot-Everything internal modem, and
  503.   it works with <name-deleted> and <name-deleted> communication packages,
  504.   but it doesn't work with Kermit".
  505.  
  506. This has long been a common complaint about internal modems.  The same
  507. complaint is also now being heard with alarming frequency about some of the
  508. newer external modems.
  509.  
  510. With internal modems, particularly when they are installed on COM3 or COM4,
  511. the most common problems are:
  512.  
  513.  1. Kermit does not know the modem's address, or the device is using an IRQ
  514.     number other than 3 or 4.  These problems can be fixed by giving the
  515.     appropriate SET COMn command to Kermit.
  516.  
  517.  2. The internal modem is installed incorrectly, with an address or IRQ that
  518.     conflicts with one already in use on your PC.
  519.  
  520.  3. The internal modem does not correctly emulate a real IBM PC serial port,
  521.     and therefore fails Kermit's hardware test, and therefore can only be
  522.     used through the BIOS.
  523.  
  524.  4. The device is in a laptop, notebook, or palmtop computer, and power to 
  525.     the internal modem or serial port has been disabled in the CMOS setup,
  526.     or has been turned off automatically when the cover is closed or the
  527.     machine shut down.
  528.  
  529. In recent months (beginning about mid-1992) a new generation of low-cost,
  530. high-speed modems, both internal and external, began to appear on the market.
  531. These modems typically offer a wide range of features: V.32 and V.32bis
  532. modulation, V.42 and MNP error correction, V.42bis and MNP data compression,
  533. etc.  Unfortunately, many of these modems suffer from bugs not found in
  534. earlier (and usually more expensive) modems.  The problems are generally
  535. related to initialization of the modem and interaction with its command
  536. processor.  Some common complaints:
  537.  
  538.  1. An internal modem does not work at all; the modem becomes nonoperational
  539.     as soon as Kermit attempts to access it.  The cause has been traced to the
  540.     fact that Kermit's initialization of the modem's UART is "too fast" for
  541.     some of these new modems.  (This same initialization sequence has been
  542.     used for nearly a decade with no problems, and still works on the
  543.     well-known and reputable brands of internal modems.)
  544.  
  545.  2. "Kermit won't dial or respond to modem commands".  The modem ignores
  546.     dialing or other commands from Kermit.  Or the modem ignores commands when
  547.     Kermit's PARITY is set to a particular value, like EVEN.  Or commands are
  548.     not processed correctly above a certain interface speed.
  549.  
  550.  3. "I can dial successfully, and in general send characters to and through
  551.     the modem, but I never get any characters back."  This looks suspiciously
  552.     like the "talk-but-not-listen" problem, but in some cases it is a bug in,
  553.     or a configuration problem with, the modem, having nothing to do with
  554.     Kermit: the modem is simply not sending any characters to the PC.
  555.  
  556.  4. "After using the modem with <name-omitted> communication software, it
  557.     also works with Kermit, but it won't work with Kermit unless I run
  558.     <name-omitted> first."
  559.  
  560. And so on.  All of these are modem, not Kermit, problems.  Here are some
  561. suggestions for overcoming them:
  562.  
  563.  1. Slow the UART-initialization sequence.  This is accomplished by patch #11
  564.     to MS-DOS Kermit 3.11 and patch #10 to version 3.12.  These patches have
  565.     been tested successfully on several of the misbehaving modems.  Get the
  566.     patch file for your version of Kermit (3.11 or 3.12).  The patch files are
  567.     in kermit/a/msr311.pch and kermit/a/msr312.pch on watsun.cc.columbia.edu
  568.     on the Internet, available via anonymous FTP.  Rename the file to
  569.     MSKERMIT.PCH and put in the same directory as your MSKERMIT.INI file, and
  570.     start Kermit again.  At the MS-Kermit> prompt, give a VERSION command to
  571.     make sure the patches were installed.  If not, give a PATCH command (or,
  572.     better still, make sure that PATCH is the first command in your
  573.     MSKERMIT.INI file, and that your MSKERMIT.INI file is in your DOS PATH so
  574.     Kermit will always execute it).
  575.  
  576.  2. External modems only: Check that your modem cable has wires for (at least)
  577.     the TD, RD, SG, CTS, RTS, DSR, CD, and DTR RS-232 signals.  If it does
  578.     not, replace the cable with a real modem cable, or (temporarily) configure
  579.     your modem to compensate for the missing signals.
  580.  
  581.  3. Read your modem manual and check your modem's configuration.  Perhaps its
  582.     interface speed is locked to a different speed than the one Kermit is
  583.     using.  Perhaps it is set to use hardware flow control, but Kermit is not.
  584.     Also, check its factory and/or saved settings, and under what conditions
  585.     they are restored (for example, are they restored when the PC drops DTR?).
  586.     How are you selecting saved settings -- read your modem manual about (for
  587.     example) the difference between AT&F and AT&F2.  Be aware that the AT&Fn
  588.     commands might not restore all S-registers, so double check them.  Be
  589.     particularly sensitive to the registers that control interface speed,
  590.     modulation technique, error correction, data compression, negotiation, and
  591.     fallback, and note that each modem maker probably uses different registers
  592.     and commands to control each of these features.
  593.  
  594.  4. Try the following sequence to initialize the port (using COM3 in this
  595.     example):
  596.  
  597.       SET COM3 <address> <irq>  ; (if necessary)
  598.       SET PORT 3                ; Select port 3
  599.       HANGUP                    ; Drop DTR on port 3
  600.       SET PORT 3                ; Re-initialize port 3
  601.  
  602.  5. SET PARITY NONE when talking to the modem, and then set parity to
  603.     whatever the remote host or service requires after making the connection.
  604.     (WARNING: MS-DOS Kermit might set its parity to some other value
  605.     automatically as a result of automatic parity detection during file
  606.     transfer.)
  607.  
  608.  6. Ensure that your PC bus speed is 8MHz.  Some PCs (not PS/2s) come with
  609.     a BIOS SETUP facility that lets you change the PC's bus speed, memory wait 
  610.     states, etc.  In general, it is dangerous to deviate from the defaults,
  611.     particularly from the 8MHz bus speed, which is a standard for add-on
  612.     devices, and might be required by your communication board or internal
  613.     modem.
  614.  
  615.  7. Modify HAYES.SCR, or whatever dialing script you are using, to take
  616.     extraordinary measures to ensure the modem is in command mode, and to send
  617.     its initialization commands very slowly and to try them repeatedly.  For
  618.     example, change "output ATQ0V1X1\13" to something like this (note: the
  619.     modem-related commands shown here are all relatively portable -- you might
  620.     also need additional modem-specific commands, such as AT&F2 to load a
  621.     particular configuration, or specific S-register settings affecting speed,
  622.     flow control, modulation, fallback, etc.):
  623.  
  624.       WAIT 1 DSR         ; See if modem is asserting Data Set Ready
  625.       IF FAIL FATAL -
  626.        {No DSR signal: Is your modem connected and turned on\63}
  627.       SET PARITY NONE    ; Use no parity
  628.       SET COUNT 5        ; Try 5 times to initialize
  629.       :INIT
  630.       HANGUP             ; Modem is connected - hang up on it.
  631.       CLEAR              ; Clear Kermit's input buffer.
  632.       OUTPUT \B          ; Send a BREAK.
  633.       PAUSE              ; Wait a second.
  634.       OUTPUT \17         ; Send a Ctrl-Q in case modem is Xoff'd.
  635.       PAUSE 2            ; Wait two seconds.
  636.       OUTPUT +           ; Send the most likely escape sequence,
  637.       OUTPUT +           ; which is "+++" with at least a second of
  638.       OUTPUT +           ; "silence" before and after.
  639.       PAUSE 2            ;  ...
  640.       OUTPUT \13         ; Send a carriage return.
  641.       PAUSE              ; Wait a second.
  642.       OUTPUT A           ; Send an A.
  643.       PAUSE              ; Wait another second.
  644.       OUTPUT T           ; Send a T.
  645.       PAUSE              ; Wait another second.     
  646.       OUTPUT \13         ; Send a carriage return.
  647.       PAUSE              ; Wait a second.
  648.       CLEAR              ; Clear away echo and response.
  649.       OUTPUT A           ; Send initialization command.
  650.       OUTPUT T           ; One character at a time...
  651.       PAUSE
  652.       OUTPUT Q           ; Q0 = Result codes enabled
  653.       OUTPUT 0
  654.       OUTPUT V           ; V1 = Word result codes
  655.       OUTPUT 1
  656.       OUTPUT X           ; X1 = Dial response level
  657.       OUTPUT 1
  658.       OUTPUT \13         ; Carriage return terminates the command
  659.       PAUSE
  660.       INPUT 3 OK         ; Wait for OK response.
  661.       IF SUCCESS GOTO INITOK  ; Got one.
  662.       IF COUNT GOTO INIT      ; Didn't, try again.
  663.       ECHO Failure to initialize modem.  ; No more tries.
  664.       STOP 1                             ; Fail.
  665.       :INITOK
  666.  
  667.     If this doesn't work, insert a PAUSE command after each OUTPUT command
  668.     or run the script at a lower speed.
  669.  
  670.  8. Dial at a lower speed.  Make your interface speed match the modulation
  671.     speed -- e.g. use 9600 for V.32, 2400 for V.22bis, etc.  Turn off fancy
  672.     modem options like error correction and compression.  etc etc.  NOTE:
  673.     connection problems between the two modems have nothing to do with Kermit
  674.     and are beyond the scope of this document.  If a modem appears to dial
  675.     correctly, gets connection tones, and then hangs up, it is undoubtedly a
  676.     problem between the two modems (involving one modem, both modems, and/or
  677.     the phone company), and indicates a modem configuration problem, a bug,
  678.     or a basic incompatibility between the calling and answering modems.
  679.  
  680.  9. Call your modem maker's technical support number.  Ask if they have
  681.     replacement chips to fix bugs in your modem.
  682.  
  683. ------------------------------
  684.  
  685. End of Info-Kermit Digest
  686. *************************
  687.  
  688.