home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / sys / ibm / pc / digest / 210 next >
Encoding:
Internet Message Format  |  1993-01-27  |  34.3 KB

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