home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / info / faq / os2_20 / os2help / comapar.fax < prev    next >
Encoding:
Text File  |  1992-09-17  |  22.7 KB  |  503 lines

  1. OS/2 2.0 ASYNCHRONOUS COMMUNICATION FACT SHEET
  2. ----------------------------------------------
  3.  
  4.     1.0    AT BUS ARCHITECTURE OVERVIEW
  5.  
  6.            The original ISA machine (the IBM PC-AT) allowed for the
  7.            definition of up to four serial communications ports.
  8.            However, there has never been any hardware architectural
  9.            standard that defined the I/O port addresses or Interrupt
  10.            Request (IRQ) lines associated with communication ports #3
  11.            or #4.  Over the years a convention was established which
  12.            places the port addresses for COM3 and COM4 at 03E8 and
  13.            02E8 respectively.  This is a generally accepted
  14.            convention and is not a standard.
  15.  
  16.            If multiple hardware adapters of any kind (not just
  17.            communications) are using the same I/O address, then the
  18.            effect on your computer will be totally unpredictable.
  19.  
  20.            OS/2 2.0 is an interrupt driven operating system and
  21.            requires unique I/O addresses and Interrupt Request
  22.            lines (IRQs) for each adapter in the system on an ISA
  23.            computer system.  ISA systems have what are called "edge
  24.            triggered" interrupts in contrast to Micro Channel (MCA)
  25.            and EISA which use "level sensitive" interrupts.  Edge
  26.            triggered interrupts can only be sensed for a very short
  27.            period of time.  If a second interrupt arrives from
  28.            another adapter while the first interrupt is still being
  29.            processed, then the second interrupt will be lost.  Also, if two
  30.            adapters are sharing the same PHYSICAL IRQ, then the processor
  31.            does not know which adapter (and therefore which OS/2 session)
  32.            should get the Interrupt Request (IRQ). In a single tasking
  33.            operating system such as DOS, the sharing of interrupts is not a
  34.            problem as only one application is in use at a time.  OS/2,
  35.            however, presents a different set of problems.  If we have two,
  36.            three, or four serial communications adapters, the probability is
  37.            now pretty high that we might try to use two or more of them
  38.            at the same time.  If some of them have previously been
  39.            set up using shared interrrupts, then the stage is set for
  40.            mysterious things to happen that probably didn't happen
  41.            under DOS.
  42.  
  43.     1.1    RECOMMENDATIONS FOR ISA BUS ARCHITECTURE
  44.  
  45.            On an ISA machine there are a total of 15 IRQ levels
  46.            available.  The standard settings, in order of priority,
  47.            follow:
  48.  
  49.            IRQ#   Device Associated
  50.  
  51.              0         System Timer
  52.              1         Keyboard
  53.              2         Secondary Interrupt Controller  (see note)
  54.                8       Realtime Clock
  55.                9       --- (see note)
  56.               10       --- free
  57.               11       --- free
  58.               12       --- free - reserved for aux dev
  59.               13       Math Coprocessor
  60.               14       Hard Disk
  61.               15       --- free
  62.              3         COM2 (Serial Communications Port #2)
  63.              4         COM1 (Serial Communications Port #1)
  64.              5         LPT2 (Parallel Printer Port #2 - add. 278)
  65.              6         Diskette
  66.              7         LPT1 (Parallel Printer Port #1 - add. 3BC or 378)
  67.  
  68.  
  69.            (Note:  On the IBM-AT (ISA bus) the IRQ9 pin is identical
  70.            with the IRQ22 pin on the original IBM-PC.  If you have an
  71.            older, 8-bit adapter whose documentation states that it
  72.            uses IRQ2, then be aware that this will actually be seen as
  73.            IRQ9 when plugged into the 16-bit ISA bus.)
  74.  
  75.            OS/2 can detect that an interrupt line is shared and will
  76.            disallow the simultaneous use.  Assume that COM1 and COM3
  77.            were sharing IRQ4 (a fairly common real situation).  If we
  78.            tried to use both COM ports at the same time, OS/2 would
  79.            refuse to allow the second one to start.  A well-written
  80.            OS/2 communications program would see and report the error
  81.            from OS/2 that the port could not be opened.  A DOS
  82.            application, however, will likely be unprepared to respond
  83.            to this strange situation, and it may simply hang,
  84.            waiting for the port that will never open.
  85.  
  86.            To avoid these problems, make sure that all of
  87.            your hardware adapters have their own unique I/O addresses
  88.            and IRQ assignments.  Unfortunately, on an ISA machine,
  89.            OS/2 has no way to query the computer to find out what
  90.            these settings are.  Therefore, after checking and setting
  91.            the adapters according to the instruction manuals, you must
  92.            also tell OS/2 what you've done by placing explicit
  93.            information into the config.sys file.
  94.  
  95.  
  96.            TO SUMMARIZE:
  97.            =============
  98.  
  99.            Even though there is some flexibility for printer & COM
  100.            port assignments, try to stick to the standard assignment as
  101.            shown in the IRQ table above.
  102.  
  103.            The I/O addresses and IRQs are determined by the HARDWARE.
  104.            The parameters passed to COM.SYS do NOT set the hardware;
  105.            these parameters are a reflection of the physical
  106.            hardware settings.
  107.  
  108.            Available interrupts, in order of priority, are:  IRQ10,
  109.            IRQ11, IRQ12, IRQ15, IRQ3 (if not used for COM2), and IRQ5
  110.            (if not used for LPT2).
  111.  
  112.            Physical addresses and interrupts can be indicated in OS2 to
  113.            the communication drivers.  Usual default settings follow:
  114.  
  115.            COM1 - 3F8 - IRQ 4 (OS/2 & industry default)
  116.            COM2 - 2F8 - IRQ 3 (OS/2 & industry default)
  117.            COM3 - 3E8 - (industry practice)
  118.            COM4 - 2E8 - (industry practice)
  119.  
  120.            There is no OS/2 default setting for COM3 and COM4.  It
  121.            must be specified by the device=x:\OS2\COM.SYS statement
  122.            in the config.sys file.
  123.  
  124.            Printer port addresses and IRQ levels are hardcoded in
  125.            OS/2 as follows:
  126.  
  127.            3BC or 378      ==> IRQ7 (LPT1)
  128.            278             ==> IRQ5 (LPT2)
  129.  
  130.            Unlike the COM ports, where the addresses and the
  131.            interrupts can be specified by parameters to the COM.SYS in
  132.            config.sys, the printer port addresses and IRQs shown above
  133.            are fixed.  OS2 assigns LPT1 to the highest printer port
  134.            address being used.  The printer address is specified in
  135.            the printer adapter board.  With OS/2 you can not use both
  136.            addresses 3BC and 378 as printer port addresses.  Both
  137.            LPTs would be sharing IRQ7.  Unlike DOS, OS/2 uses
  138.            interrupts for printing.  The interrupt is triggered by the
  139.            signal line, ACK, from the printer.  If the IRQs are not
  140.            configured correctly or if the printer cable is missing the
  141.            ACK line, the printer may work under DOS and have problems
  142.            under OS/2.
  143.  
  144.            An example of address and interrupt assignments follows:
  145.  
  146.                   COM1 - 3F8,IRQ4
  147.                   COM2 - 2F8,IRQ3
  148.                   COM3 - 3E8,IRQ5 (IRQ5 not being used by lpt2)
  149.                   COM4 - 2E8,IRQ10
  150.  
  151.                   LPT1 - 378,IRQ7
  152.  
  153.            If interrupt devices are occasionally losing data, try
  154.            moving to a higher priority unused interrupt.
  155.  
  156.  
  157.     2.0    OS/2 2.0 COMMUNICATION DRIVERS
  158.  
  159.            Different sets of communication drivers exist.
  160.            You can identify which version you are using by the date
  161.            and time associated with the files.   The OS/2 2.0 GA
  162.            communication drivers will have a date of 3-30-92  12:00p.
  163.            The most current drivers will have a date of 8-10-92.
  164.            The version of the driver determines which parameters may
  165.            be passed to COM.SYS.   The driver names are:
  166.  
  167.  
  168.            COM.SYS       The COM.SYS driver is the main OS/2 2.0
  169.                          communications driver.  This
  170.                          file is located in the \OS2
  171.                          directory.  COM.SYS processes
  172.                          all passed parameters.
  173.  
  174.            VCOM.SYS      The VCOM.SYS driver is used in every Virtual
  175.                          Dos Machine (VDM).  This file is
  176.                          located in the \OS2\MDOS
  177.                          directory.  The purpose of the
  178.                          VCOM.SYS is to virtualize all
  179.                          interfaces to DOS applications.
  180.                          There are no parameters passed.
  181.  
  182.            COMM.DRV      The COMM.DRV is used in WIN-OS2 sessions.
  183.                          This file is located in the
  184.                          \OS2\MDOS\WINOS2\SYSTEM
  185.                          directory.  There are no
  186.                          parameters passed.
  187.  
  188.  
  189.     2.1    OS/2 2.0 GA DRIVER PARAMETERS
  190.  
  191.            Those customers who have AT BUS machines and wish to use
  192.            COM3, COM4, or non-standard I/O addresses must modify the
  193.            config.sys file to include the following parameters for
  194.            the COM.SYS driver.  The parameters for the COM.SYS driver
  195.            dated *** 3-30-92 *** are:
  196.  
  197.  
  198.               DEVICE=C:\OS2\COM.SYS (n,a,i) [(n,a,i)]
  199.  
  200.               where the last parameter is optional
  201.  
  202.               n = the Com port
  203.  
  204.               a = COM port I/O address (e.g. 03E8, 02E8)
  205.  
  206.               i = IRQ level
  207.  
  208.            For example, to specify that COM3 is at address 03E8 on
  209.            IRQ5 and that COM4 is at address 02E8 on IRQ10,
  210.            use the following statement (assuming that OS/2 is
  211.            installed on the C:  drive):
  212.  
  213.               DEVICE=C:\OS2\COM.SYS (3,3E8,5) (4,2E8,10)
  214.  
  215.            Note that this syntax is actually quite general.  Non-standard
  216.            parameters for COM1 and COM2 are set the same way.
  217.  
  218.  
  219.            The I/O address and IRQ level should be noted in the
  220.            documentation that came with the adapter.  Either or both
  221.            might be fixed values or settable to a range of values
  222.            via jumpers or switches.  In some cases, you may find that
  223.            the values are fixed or that the range of settings
  224.            available to you is insufficient to avoid the sharing
  225.            conflict.
  226.  
  227.     2.2    OS/2 2.0 REPLACEMENT DRIVERS
  228.  
  229.            Those customers who have AT BUS machines and wish to use
  230.            COM3, COM4 or non-standard I/O addresses must modify the
  231.            config.sys file to include the following parameters for
  232.            the COM.SYS driver.  The parameters for the COM.SYS driver
  233.            dated 8-10-92 are:
  234.  
  235.  
  236.                  DEVICE=C:\OS2\COM.SYS (n,xxxx,ii,s) [(n,xxxx,ii,s)]
  237.  
  238.            where the last parameter is optional.
  239.  
  240.            n         :  COM port number (usually 3 and 4 but it
  241.                                is possible to configure 1 or 2 to a
  242.                                different IRQ or I/O address
  243.  
  244.            xxxx      :  COM port address
  245.  
  246.            ii        :  IRQ level
  247.  
  248.            s         :  Spurious interrupt handling switch
  249.                         values:
  250.  
  251.                         D or d :  to deinstall COM driver if
  252.                                   more than 1000 consecutive
  253.                                   spurious interrupts occur.
  254.  
  255.                         I or i :  to ignore spurious interrupt
  256.  
  257.                         P or p :  to post error if more than 1000
  258.                                   consecutive interrupts
  259.                                   occur.  When post error,
  260.                                   some apps can hang.
  261.  
  262.            NOTE    :    Some UART chips or malfunctioning modems can cause
  263.                         interrupts when no interrupt is expected.  These
  264.                         interrupts are known as spurious interrupts.
  265.  
  266.            COMM.DRV will now support COM3 and COM4 under WINOS2.
  267.  
  268.  
  269.     2.2.1  COM_DIRECT_ACCESS DOS property
  270.  
  271.            When COM_DIRECT_ACCESS is ON, VCOM.SYS will allow a DOS
  272.            application to access the communication ports directly.  This
  273.            DOS property makes LapLink III, FaskLynx, FSDUAT, AS/400
  274.            Asynch Router, and MS WORD work in a VDM session.  However, since
  275.            the buffers in COM.SYS cannot be used, characters may be lost
  276.            and some applications may suffer from the lack of
  277.            buffering.  With most DOS applications, COM_DIRECT_ACCESS
  278.            should be set to OFF as its default setting.
  279.  
  280.  
  281.     2.2.2  COM_SELECT DOS Property
  282.  
  283.            COM_SELECT allows the DOS session to select only one
  284.            communication port to be used by the session.  The
  285.            communication ports which are not selected will be hidden from
  286.            the DOS session.  There are some DOS applications which take
  287.            over every available communication port.  This DOS property is
  288.            effective in preventing those DOS applications from taking
  289.            over all the communication ports.  An example of a DOS
  290.            application which attempts to control all the communcication
  291.            ports is LapLink Pro.  If LapLink Pro and another application
  292.            which accesses a communication port are executed at the same
  293.            time, it is necessary to set COM_SELECT.  The default setting
  294.            is ALL.
  295.  
  296.     2.2.3  COMM.DRV will now support COM3 and COM4 under WINOS2.
  297.  
  298.  
  299.  
  300.     3.0    OS/2 2.O COMMUNICATION TROUBLE SHOOTING
  301.  
  302.            This section will give some insight into trouble shooting
  303.            communication problems with OS/2 2.0.  Past experience has
  304.            shown that most problems will be resolved by one or more
  305.            of the solutions listed below.
  306.  
  307.  
  308.     3.1    PORT IS NOT RECOGNIZED OR DOES NOT WORK
  309.  
  310.            Most problems with IRQ and I/O address settings occur on
  311.            AT BUS (ISA) machines as a limitation of the hardware.
  312.            IRQs are allowed to be shared on a micro channel (MCA)
  313.            machine provided the adapter is MCA compatible and can be
  314.            configured with the reference diskette.
  315.  
  316.            A.  Verify that all IRQ levels and I/O addresses are
  317.                unique for every adapter.  The usual problem is that
  318.                communication adapters (internal modems, FAXes, etc)
  319.                use COM3 and IRQ4 which is already in use by COM1.
  320.                You must PHYSICALLY change the IRQ on the adapter to
  321.                one which is not in use.  You need to refer to the
  322.                documentation which came with the adapter and
  323.                Section 1.1 of this document.
  324.  
  325.            B.  Verify that you are passing the correct parameters to
  326.                the COM.SYS driver in the config.sys file.
  327.                Depending on which driver you have loaded, refer to
  328.                Section 2.1 or 2.2 of this document.
  329.  
  330.            C.  Obtain the latest OS/2 2.0 communication drivers.
  331.                  See Section 2.0 to verify which driver you have. You can
  332.                  obtain the new drivers from various bulletin boards.
  333.                 (Call 1-800-547-1283 for information about registering
  334.                 for and accessing the IBM OS/2 BBS, or call 1-800-237-5511
  335.                 for the OS/2 Support Line.)
  336.  
  337.            D.  If error message during boot : COMx not installed
  338.                because interrupt already in use, check for an
  339.                IRQ conflict with other device drivers or hardware.
  340.  
  341.            E.  If system (AT bus or MCA) boots without error but a
  342.                COM port is still not working at all, issue a
  343.                MODE command (from an OS/2 command prompt) to the
  344.                problem COM port (i.e.  MODE COMx:).  If it
  345.                indicates that the COMx port is not installed, check for
  346.                IRQ conflicts. (See Section 3.5)
  347.                (If the mouse is on a COM port, the MODE command will
  348.                report a SYS1620, the COM port specified is not installed,
  349.                since the mouse has taken that COM port.)
  350.  
  351.            F.  If the application is a DOS communication program, set
  352.                the DOS_SETTINGS to the following:
  353.  
  354.                        COM_HOLD:            ON
  355.                        COM_DIRECT_ACCESS    ON or OFF              (*)
  356.                        COM_SELECT           specific COMx          (*)
  357.                        DOS_DEVICE:          x:\os2\mdos\commdd.sys (+)
  358.                        HW_ROM_TO_RAM:       ON
  359.                        HW_TIMER:            ON
  360.                        IDLE_SECONDS         60
  361.                        IDLE_SENSITIVITY    100
  362.  
  363.                (*) Requires the latest device drivers.  (See Section
  364.                    2.2.)
  365.  
  366.                (+) NOTE:  The DOS_DEVICE (commdd.sys) may not be the
  367.                    only one required depending on the application.  (For
  368.                    example, Intel's SatisFAXion board requires a device
  369.                    driver loaded into each VDM which will use that adapter.)
  370.                    The COMMDD.SYS driver is usually required only for
  371.                    older DOS communication applications.  Do not use commdd.sys
  372.                    for EVERY DOS communication session; use it only if it
  373.                    resolves the problem.
  374.  
  375.            G. To provide a higher priority to ALL communication
  376.               programs, change the following parameters in the
  377.               config.sys file:
  378.  
  379.                    PRIORITY_DISK_IO:    NO
  380.                    MAXWAIT:              1
  381.  
  382.            H. Some DOS applications will open ALL of the COM ports.
  383.               Use the COM_SELECT Dos setting in all of the DOS
  384.               communication sessions (VDMs).
  385.  
  386.  
  387.     3.2   APPLICATION HANGS
  388.  
  389.           A. If it is an OS/2 application:
  390.              => Ensure your COM port works in standalone DOS.
  391.              => Using MODE command, turn off IDSR, ODSR, and
  392.                 OCTS (See Section 3.5)
  393.  
  394.           B. If an OS/2 application is experiencing a lot of
  395.              data loss:
  396.              => Lower the baud rate
  397.              => Use the latest communication drivers
  398.              => Change settings in the config.sys file
  399.  
  400.  
  401.           C. If it is a DOS or Windows application:
  402.              => Some DOS applications will open ALL of the COM ports
  403.                 Use the COM_SELECT Dos Setting in all of the DOS
  404.                 communication sessions (VDMs).
  405.              => Review previous section
  406.  
  407.  
  408.     3.3   DOS/WINDOWS APPLICATIONS
  409.  
  410.           A. Using a BBS communication package.
  411.              => Set COM_HOLD DOS_SETTING to ON
  412.                 If using a FOSSIL Driver (e.g. X00.SYS), place a REM
  413.                 before the VCOM.SYS in the config.sys or set
  414.                 COM_DIRECT_ACCESS to ON if you have the latest
  415.                 communication drivers.
  416.  
  417.           B. Using a FAX application which uses a COM port.
  418.              => Known limitation need to operate < 9600 bps
  419.              => Use an OS/2 application for high speed fax.
  420.                 (Currently FAXPM and BitFax)
  421.  
  422.           C. An application which uses QBASIC or BASIC CTTY
  423.              => DOS_DEVICE:  x:\os2\mdos\commdd.sys
  424.              => DOW JONES Link software requires this.
  425.  
  426.           D. Some other ASYNC application.
  427.              Check "Application Considerations" in the Readme.  Example:
  428.              =>CrossTalk for Windows needs BUFFER=OFF.
  429.              =>Mirror III is similar to CrossTalk. BUFFER can be controlled
  430.                with MODE command.
  431.              =>LapLink PRO, set IDSR, ODSR, and OCTS of all COM
  432.                ports to OFF.  (See Section 3.5.)
  433.              =>LapLink III, remark out VCOM.SYS or use COM_DIRECT_ACCESS.
  434.              =>INTEL SatisFAXion modem will ONLY work in a VDM because it
  435.                requires the SATISFAX.SYS DOS device driver.
  436.              =>PMFAX will work with the INTEL SatisFAXion Classic card;  the
  437.                earlier version of CASMGR does not work on MCA class machine.
  438.  
  439.           E. In Auto Answer mode and a call comes in:
  440.              => This is a known problem for which the latest
  441.                 communication drivers provide better support
  442.                    (COM_DIRECT_ACCESS)
  443.  
  444.  
  445.     3.4   POOR PERFORMANCE, RELIABILITY
  446.  
  447.           A. Using an OS/2 or DOS application
  448.              => Try increasing/decreasing CACHE to reduce disk
  449.                 activity.  Decreasing DISK CACHING may
  450.                 reduce swapping.  You must experiment on
  451.                 your machine.
  452.              => Review previous sections concerning config.sys
  453.                 changes and DOS_SETTINGS
  454.              => Using MODE command, turn off IDSR, ODSR, and
  455.                 OCTS.  (See Section 3.5.)
  456.              => In the config.sys file, set:
  457.                    PRIORITY_DISK_IO:    NO
  458.                    MAXWAIT:              1
  459.  
  460.           B. OS/2 2.0 is a multitasking/multiprocessing operating system.
  461.              Slower microprocessors (i.e. 386/16mhz) are not going to have
  462.              enough cycles to support communications above 9600 BAUD.
  463.  
  464.           C. Even on faster machines there may be problems with supporting
  465.              high speed communications.  Some internal modems have been
  466.              known to induce spurious interrupts which take away from the
  467.              total number of interrupts that can be processed.  Much depends
  468.              on the quality of the hardware and the ability of the software
  469.              to work with advanced communication processors such as the
  470.              16550AFN.
  471.  
  472.  
  473.     3.5   USING THE MODE COMMAND
  474.  
  475.           Use MODE from an OS/2 Command line or DOS command line and
  476.           set IDSR, ODSR, and OCTS equal to OFF.  For example:
  477.  
  478.                MODE COM3:9600,N,8,1,OCTS=OFF,ODSR=OFF,IDSR=OFF
  479.  
  480.           sets COM3 to 9600, no parity, 8 data bits, 1 stop bit,
  481.           OCTS, ODSR and IDSR to OFF.
  482.  
  483.           If OCTS and/or ODSR are set to ON, the COM port will not
  484.           transmit data unless CTS and/or DSR signal lines are
  485.           enabled.  If set to OFF, the COM port will transmit
  486.           regardless of the state of signal lines CTS and/or DSR.
  487.  
  488.           If IDSR is set to ON, the COM port will discard the
  489.           incoming data unless DSR signal line is enabled.  If set
  490.           to OFF, the port will receive data regardless of the state
  491.           of DSR.
  492.  
  493.           If any problems transmitting or receiving, set OCTS=OFF,
  494.           ODSR=OFF, IDSR=OFF to ensure that the hardware connected
  495.           to the COM port is not preventing the port from
  496.           transmitting or receiving.
  497.  
  498.           The original (GA) MODE command is broke; it shows the BUFFER=N/A
  499.           even though a 16550AFN buffered UART communication processor is
  500.           present.  The new MODE command which is shipped with the latest
  501.           communication drivers corrects this problem.
  502.  
  503.