home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / info / faq / os2_20 / os2help / comm.fax < prev    next >
Encoding:
Text File  |  1993-06-21  |  23.6 KB  |  516 lines

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