home *** CD-ROM | disk | FTP | other *** search
- OS/2 2.0 ASYNCHRONOUS COMMUNICATION FACT SHEET
- ----------------------------------------------
-
- 1.0 AT BUS ARCHITECTURE OVERVIEW
-
- The original ISA machine (the IBM PC-AT) allowed for the
- definition of up to four serial communications ports.
- However, there has never been any hardware architectural
- standard that defined the I/O port addresses or Interrupt
- Request (IRQ) lines associated with communication ports #3
- or #4. Over the years a convention was established which
- places the port addresses for COM3 and COM4 at 03E8 and
- 02E8 respectively. This is a generally accepted
- convention and is not a standard.
-
- If multiple hardware adapters of any kind (not just
- communications) are using the same I/O address, then the
- effect on your computer will be totally unpredictable.
-
- OS/2 2.0 is an interrupt driven operating system and
- requires unique I/O addresses and Interrupt Request
- lines (IRQs) for each adapter in the system on an ISA
- computer system. ISA systems have what are called "edge
- triggered" interrupts in contrast to Micro Channel (MCA)
- and EISA which use "level sensitive" interrupts. Edge
- triggered interrupts can only be sensed for a very short
- period of time. If a second interrupt arrives from
- another adapter while the first interrupt is still being
- processed, then the second interrupt will be lost. Also, if two
- adapters are sharing the same PHYSICAL IRQ, then the processor
- does not know which adapter (and therefore which OS/2 session)
- should get the Interrupt Request (IRQ). In a single tasking
- operating system such as DOS, the sharing of interrupts is not a
- problem as only one application is in use at a time. OS/2,
- however, presents a different set of problems. If we have two,
- three, or four serial communications adapters, the probability is
- now pretty high that we might try to use two or more of them
- at the same time. If some of them have previously been
- set up using shared interrrupts, then the stage is set for
- mysterious things to happen that probably didn't happen
- under DOS.
-
- 1.1 RECOMMENDATIONS FOR ISA BUS ARCHITECTURE
-
- On an ISA machine there are a total of 15 IRQ levels
- available. The standard settings, in order of priority,
- follow:
-
- IRQ# Device Associated
-
- 0 System Timer
- 1 Keyboard
- 2 Secondary Interrupt Controller (see note)
- 8 Realtime Clock
- 9 --- (see note)
- 10 --- free
- 11 --- free
- 12 --- free - reserved for aux dev
- 13 Math Coprocessor
- 14 Hard Disk
- 15 --- free
- 3 COM2 (Serial Communications Port #2)
- 4 COM1 (Serial Communications Port #1)
- 5 LPT2 (Parallel Printer Port #2 - add. 278)
- 6 Diskette
- 7 LPT1 (Parallel Printer Port #1 - add. 3BC or 378)
-
-
- (Note: On the IBM-AT (ISA bus) the IRQ9 pin is identical
- with the IRQ22 pin on the original IBM-PC. If you have an
- older, 8-bit adapter whose documentation states that it
- uses IRQ2, then be aware that this will actually be seen as
- IRQ9 when plugged into the 16-bit ISA bus.)
-
- OS/2 can detect that an interrupt line is shared and will
- disallow the simultaneous use. Assume that COM1 and COM3
- were sharing IRQ4 (a fairly common real situation). If we
- tried to use both COM ports at the same time, OS/2 would
- refuse to allow the second one to start. A well-written
- OS/2 communications program would see and report the error
- from OS/2 that the port could not be opened. A DOS
- application, however, will likely be unprepared to respond
- to this strange situation, and it may simply hang,
- waiting for the port that will never open.
-
- To avoid these problems, make sure that all of
- your hardware adapters have their own unique I/O addresses
- and IRQ assignments. Unfortunately, on an ISA machine,
- OS/2 has no way to query the computer to find out what
- these settings are. Therefore, after checking and setting
- the adapters according to the instruction manuals, you must
- also tell OS/2 what you've done by placing explicit
- information into the config.sys file.
-
-
- TO SUMMARIZE:
- =============
-
- Even though there is some flexibility for printer & COM
- port assignments, try to stick to the standard assignment as
- shown in the IRQ table above.
-
- The I/O addresses and IRQs are determined by the HARDWARE.
- The parameters passed to COM.SYS do NOT set the hardware;
- these parameters are a reflection of the physical
- hardware settings.
-
- Available interrupts, in order of priority, are: IRQ10,
- IRQ11, IRQ12, IRQ15, IRQ3 (if not used for COM2), and IRQ5
- (if not used for LPT2).
-
- Physical addresses and interrupts can be indicated in OS2 to
- the communication drivers. Usual default settings follow:
-
- COM1 - 3F8 - IRQ 4 (OS/2 & industry default)
- COM2 - 2F8 - IRQ 3 (OS/2 & industry default)
- COM3 - 3E8 - (industry practice)
- COM4 - 2E8 - (industry practice)
-
- There is no OS/2 default setting for COM3 and COM4. It
- must be specified by the device=x:\OS2\COM.SYS statement
- in the config.sys file.
-
- Printer port addresses and IRQ levels are hardcoded in
- OS/2 as follows:
-
- 3BC or 378 ==> IRQ7 (LPT1)
- 278 ==> IRQ5 (LPT2)
-
- Unlike the COM ports, where the addresses and the
- interrupts can be specified by parameters to the COM.SYS in
- config.sys, the printer port addresses and IRQs shown above
- are fixed. OS2 assigns LPT1 to the highest printer port
- address being used. The printer address is specified in
- the printer adapter board. With OS/2 you can not use both
- addresses 3BC and 378 as printer port addresses. Both
- LPTs would be sharing IRQ7. Unlike DOS, OS/2 uses
- interrupts for printing. The interrupt is triggered by the
- signal line, ACK, from the printer. If the IRQs are not
- configured correctly or if the printer cable is missing the
- ACK line, the printer may work under DOS and have problems
- under OS/2.
-
- An example of address and interrupt assignments follows:
-
- COM1 - 3F8,IRQ4
- COM2 - 2F8,IRQ3
- COM3 - 3E8,IRQ5 (IRQ5 not being used by lpt2)
- COM4 - 2E8,IRQ10
-
- LPT1 - 378,IRQ7
-
- If interrupt devices are occasionally losing data, try
- moving to a higher priority unused interrupt.
-
-
- 2.0 OS/2 2.0 COMMUNICATION DRIVERS
-
- Different sets of communication drivers exist.
- You can identify which version you are using by the date
- and time associated with the files. The OS/2 2.0 GA
- communication drivers will have a date of 3-30-92 12:00p.
- The most current drivers will have a date of 8-10-92.
- The version of the driver determines which parameters may
- be passed to COM.SYS. The driver names are:
-
-
- COM.SYS The COM.SYS driver is the main OS/2 2.0
- communications driver. This
- file is located in the \OS2
- directory. COM.SYS processes
- all passed parameters.
-
- VCOM.SYS The VCOM.SYS driver is used in every Virtual
- Dos Machine (VDM). This file is
- located in the \OS2\MDOS
- directory. The purpose of the
- VCOM.SYS is to virtualize all
- interfaces to DOS applications.
- There are no parameters passed.
-
- COMM.DRV The COMM.DRV is used in WIN-OS2 sessions.
- This file is located in the
- \OS2\MDOS\WINOS2\SYSTEM
- directory. There are no
- parameters passed.
-
-
- 2.1 OS/2 2.0 GA DRIVER PARAMETERS
-
- Those customers who have AT BUS machines and wish to use
- COM3, COM4, or non-standard I/O addresses must modify the
- config.sys file to include the following parameters for
- the COM.SYS driver. The parameters for the COM.SYS driver
- dated *** 3-30-92 *** are:
-
-
- DEVICE=C:\OS2\COM.SYS (n,a,i) [(n,a,i)]
-
- where the last parameter is optional
-
- n = the Com port
-
- a = COM port I/O address (e.g. 03E8, 02E8)
-
- i = IRQ level
-
- For example, to specify that COM3 is at address 03E8 on
- IRQ5 and that COM4 is at address 02E8 on IRQ10,
- use the following statement (assuming that OS/2 is
- installed on the C: drive):
-
- DEVICE=C:\OS2\COM.SYS (3,3E8,5) (4,2E8,10)
-
- Note that this syntax is actually quite general. Non-standard
- parameters for COM1 and COM2 are set the same way.
-
-
- The I/O address and IRQ level should be noted in the
- documentation that came with the adapter. Either or both
- might be fixed values or settable to a range of values
- via jumpers or switches. In some cases, you may find that
- the values are fixed or that the range of settings
- available to you is insufficient to avoid the sharing
- conflict.
-
- 2.2 OS/2 2.0 REPLACEMENT DRIVERS
-
- Those customers who have AT BUS machines and wish to use
- COM3, COM4 or non-standard I/O addresses must modify the
- config.sys file to include the following parameters for
- the COM.SYS driver. The parameters for the COM.SYS driver
- dated 8-10-92 are:
-
-
- DEVICE=C:\OS2\COM.SYS (n,xxxx,ii,s) [(n,xxxx,ii,s)]
-
- where the last parameter is optional.
-
- n : COM port number (usually 3 and 4 but it
- is possible to configure 1 or 2 to a
- different IRQ or I/O address
-
- xxxx : COM port address
-
- ii : IRQ level
-
- s : Spurious interrupt handling switch
- values:
-
- D or d : to deinstall COM driver if
- more than 1000 consecutive
- spurious interrupts occur.
-
- I or i : to ignore spurious interrupt
-
- P or p : to post error if more than 1000
- consecutive interrupts
- occur. When post error,
- some apps can hang.
-
- NOTE : Some UART chips or malfunctioning modems can cause
- interrupts when no interrupt is expected. These
- interrupts are known as spurious interrupts.
-
- COMM.DRV will now support COM3 and COM4 under WINOS2.
-
-
- 2.2.1 COM_DIRECT_ACCESS DOS property
-
- When COM_DIRECT_ACCESS is ON, VCOM.SYS will allow a DOS
- application to access the communication ports directly. This
- DOS property makes LapLink III, FaskLynx, FSDUAT, AS/400
- Asynch Router, and MS WORD work in a VDM session. However, since
- the buffers in COM.SYS cannot be used, characters may be lost
- and some applications may suffer from the lack of
- buffering. With most DOS applications, COM_DIRECT_ACCESS
- should be set to OFF as its default setting.
-
-
- 2.2.2 COM_SELECT DOS Property
-
- COM_SELECT allows the DOS session to select only one
- communication port to be used by the session. The
- communication ports which are not selected will be hidden from
- the DOS session. There are some DOS applications which take
- over every available communication port. This DOS property is
- effective in preventing those DOS applications from taking
- over all the communication ports. An example of a DOS
- application which attempts to control all the communcication
- ports is LapLink Pro. If LapLink Pro and another application
- which accesses a communication port are executed at the same
- time, it is necessary to set COM_SELECT. The default setting
- is ALL.
-
- 2.2.3 COMM.DRV will now support COM3 and COM4 under WINOS2.
-
-
-
- 3.0 OS/2 2.O COMMUNICATION TROUBLE SHOOTING
-
- This section will give some insight into trouble shooting
- communication problems with OS/2 2.0. Past experience has
- shown that most problems will be resolved by one or more
- of the solutions listed below.
-
-
- 3.1 PORT IS NOT RECOGNIZED OR DOES NOT WORK
-
- Most problems with IRQ and I/O address settings occur on
- AT BUS (ISA) machines as a limitation of the hardware.
- IRQs are allowed to be shared on a micro channel (MCA)
- machine provided the adapter is MCA compatible and can be
- configured with the reference diskette.
-
- A. Verify that all IRQ levels and I/O addresses are
- unique for every adapter. The usual problem is that
- communication adapters (internal modems, FAXes, etc)
- use COM3 and IRQ4 which is already in use by COM1.
- You must PHYSICALLY change the IRQ on the adapter to
- one which is not in use. You need to refer to the
- documentation which came with the adapter and
- Section 1.1 of this document.
-
- B. Verify that you are passing the correct parameters to
- the COM.SYS driver in the config.sys file.
- Depending on which driver you have loaded, refer to
- Section 2.1 or 2.2 of this document.
-
- C. Obtain the latest OS/2 2.0 communication drivers.
- See Section 2.0 to verify which driver you have. You can
- obtain the new drivers from various bulletin boards.
- (Call 1-800-547-1283 for information about registering
- for and accessing the IBM OS/2 BBS, or call 1-800-237-5511
- for the OS/2 Support Line.)
-
- D. If error message during boot : COMx not installed
- because interrupt already in use, check for an
- IRQ conflict with other device drivers or hardware.
-
- E. If system (AT bus or MCA) boots without error but a
- COM port is still not working at all, issue a
- MODE command (from an OS/2 command prompt) to the
- problem COM port (i.e. MODE COMx:). If it
- indicates that the COMx port is not installed, check for
- IRQ conflicts. (See Section 3.5)
- (If the mouse is on a COM port, the MODE command will
- report a SYS1620, the COM port specified is not installed,
- since the mouse has taken that COM port.)
-
- F. If the application is a DOS communication program, set
- the DOS_SETTINGS to the following:
-
- COM_HOLD: ON
- COM_DIRECT_ACCESS ON or OFF (*)
- COM_SELECT specific COMx (*)
- DOS_DEVICE: x:\os2\mdos\commdd.sys (+)
- HW_ROM_TO_RAM: ON
- HW_TIMER: ON
- IDLE_SECONDS 60
- IDLE_SENSITIVITY 100
-
- (*) Requires the latest device drivers. (See Section
- 2.2.)
-
- (+) NOTE: The DOS_DEVICE (commdd.sys) may not be the
- only one required depending on the application. (For
- example, Intel's SatisFAXion board requires a device
- driver loaded into each VDM which will use that adapter.)
- The COMMDD.SYS driver is usually required only for
- older DOS communication applications. Do not use commdd.sys
- for EVERY DOS communication session; use it only if it
- resolves the problem.
-
- G. To provide a higher priority to ALL communication
- programs, change the following parameters in the
- config.sys file:
-
- PRIORITY_DISK_IO: NO
- MAXWAIT: 1
-
- H. Some DOS applications will open ALL of the COM ports.
- Use the COM_SELECT Dos setting in all of the DOS
- communication sessions (VDMs).
-
-
- 3.2 APPLICATION HANGS
-
- A. If it is an OS/2 application:
- => Ensure your COM port works in standalone DOS.
- => Using MODE command, turn off IDSR, ODSR, and
- OCTS (See Section 3.5)
-
- B. If an OS/2 application is experiencing a lot of
- data loss:
- => Lower the baud rate
- => Use the latest communication drivers
- => Change settings in the config.sys file
-
-
- C. If it is a DOS or Windows application:
- => Some DOS applications will open ALL of the COM ports
- Use the COM_SELECT Dos Setting in all of the DOS
- communication sessions (VDMs).
- => Review previous section
-
-
- 3.3 DOS/WINDOWS APPLICATIONS
-
- A. Using a BBS communication package.
- => Set COM_HOLD DOS_SETTING to ON
- If using a FOSSIL Driver (e.g. X00.SYS), place a REM
- before the VCOM.SYS in the config.sys or set
- COM_DIRECT_ACCESS to ON if you have the latest
- communication drivers.
-
- B. Using a FAX application which uses a COM port.
- => Known limitation need to operate < 9600 bps
- => Use an OS/2 application for high speed fax.
- (Currently FAXPM and BitFax)
-
- C. An application which uses QBASIC or BASIC CTTY
- => DOS_DEVICE: x:\os2\mdos\commdd.sys
- => DOW JONES Link software requires this.
-
- D. Some other ASYNC application.
- Check "Application Considerations" in the Readme. Example:
- =>CrossTalk for Windows needs BUFFER=OFF.
- =>Mirror III is similar to CrossTalk. BUFFER can be controlled
- with MODE command.
- =>LapLink PRO, set IDSR, ODSR, and OCTS of all COM
- ports to OFF. (See Section 3.5.)
- =>LapLink III, remark out VCOM.SYS or use COM_DIRECT_ACCESS.
- =>INTEL SatisFAXion modem will ONLY work in a VDM because it
- requires the SATISFAX.SYS DOS device driver.
- =>PMFAX will work with the INTEL SatisFAXion Classic card; the
- earlier version of CASMGR does not work on MCA class machine.
-
- E. In Auto Answer mode and a call comes in:
- => This is a known problem for which the latest
- communication drivers provide better support
- (COM_DIRECT_ACCESS)
-
-
- 3.4 POOR PERFORMANCE, RELIABILITY
-
- A. Using an OS/2 or DOS application
- => Try increasing/decreasing CACHE to reduce disk
- activity. Decreasing DISK CACHING may
- reduce swapping. You must experiment on
- your machine.
- => Review previous sections concerning config.sys
- changes and DOS_SETTINGS
- => Using MODE command, turn off IDSR, ODSR, and
- OCTS. (See Section 3.5.)
- => In the config.sys file, set:
- PRIORITY_DISK_IO: NO
- MAXWAIT: 1
-
- B. OS/2 2.0 is a multitasking/multiprocessing operating system.
- Slower microprocessors (i.e. 386/16mhz) are not going to have
- enough cycles to support communications above 9600 BAUD.
-
- C. Even on faster machines there may be problems with supporting
- high speed communications. Some internal modems have been
- known to induce spurious interrupts which take away from the
- total number of interrupts that can be processed. Much depends
- on the quality of the hardware and the ability of the software
- to work with advanced communication processors such as the
- 16550AFN.
-
-
- 3.5 USING THE MODE COMMAND
-
- Use MODE from an OS/2 Command line or DOS command line and
- set IDSR, ODSR, and OCTS equal to OFF. For example:
-
- MODE COM3:9600,N,8,1,OCTS=OFF,ODSR=OFF,IDSR=OFF
-
- sets COM3 to 9600, no parity, 8 data bits, 1 stop bit,
- OCTS, ODSR and IDSR to OFF.
-
- If OCTS and/or ODSR are set to ON, the COM port will not
- transmit data unless CTS and/or DSR signal lines are
- enabled. If set to OFF, the COM port will transmit
- regardless of the state of signal lines CTS and/or DSR.
-
- If IDSR is set to ON, the COM port will discard the
- incoming data unless DSR signal line is enabled. If set
- to OFF, the port will receive data regardless of the state
- of DSR.
-
- If any problems transmitting or receiving, set OCTS=OFF,
- ODSR=OFF, IDSR=OFF to ensure that the hardware connected
- to the COM port is not preventing the port from
- transmitting or receiving.
-
- The original (GA) MODE command is broke; it shows the BUFFER=N/A
- even though a 16550AFN buffered UART communication processor is
- present. The new MODE command which is shipped with the latest
- communication drivers corrects this problem.
-