home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / OS2 / DATACOM / SIO126A / SIOUSER.TXT < prev    next >
Text File  |  1994-01-08  |  61KB  |  1,385 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.                                      USERS MANUAL
  27.  
  28.               SIO.SYS and VSIO.SYS, Serial Communications Device Driver
  29.                for OS/2 V2 (and up) and its Virtual DOS Machines (VDM).
  30.  
  31.                         Copyright (c) 1993 by Raymond L. Gwinn
  32.                                  12469 Cavalier Drive
  33.                               Woodbridge, Virginia 22192
  34.                                  All Rights Reserved
  35.  
  36.                                    January 6, 1994
  37.  
  38.                                         Email
  39.                                  CompuServe 71154,575
  40.                              Internet p00321@psilink.com
  41.  
  42.                                   FAX 1-703-494-0595
  43.                                   BBS 1-703-494-0098
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.                                      INTRODUCTION
  55.  
  56.           SIO.SYS and VSIO.SYS are companion device drivers for Version 2
  57.           (and up) of the OS/2 operating system.
  58.  
  59.           Both drivers (SIO/VSIO) have been coded with performance in mind,
  60.           possibly sacrificing some compatibility.  For this reason, SIO
  61.           and VSIO are not exact replacements for the OS/2 drivers COM and
  62.           VCOM.  However, all serial communications programs tested by the
  63.           author work correctly using SIO/VSIO.
  64.  
  65.           This manual is intended for the SIO user.  A separate SIO
  66.           Technical Reference Manual is included in the distribution zip. 
  67.           The Technical Reference Manual also documents some advanced
  68.           options and features that are not documented here.
  69.  
  70.           This manual and the software distributed with it is provided with
  71.           no guarantees.  Use it at your own risk.
  72.  
  73.           Support
  74.  
  75.           Extensive testing has been done to insure that this product works
  76.           on the widest possible range of OS/2 V2 (and up) systems.  In
  77.           most cases, problems can be resolved by reading this manual
  78.           carefully.
  79.  
  80.           Support is provided in section 1 (Other Vendors) of the OS/2
  81.           Vendor Forum on CompuServe (GO OS2AVEN).  Regular checks are made
  82.           in this Forum for SIO support questions.
  83.  
  84.           In addition, support is provided by BBS, Email and FAX.  Voice
  85.           support would overwhelm the author.  If, after reading the manual
  86.           carefully, you are unable to resolve a problem, you may fill out
  87.           PROBLEM.TXT (adding information as necessary) and Email/FAX it to
  88.           one of the following:
  89.  
  90.                                         Email
  91.                                  CompuServe 71154,575
  92.                              Internet p00321@psilink.com
  93.  
  94.                                          FAX
  95.                                     1-703-494-0595
  96.  
  97.           PROBLEM.TXT is included in the distribution ZIP.
  98.  
  99.           You may also call the BBS at 1-703-494-0097 and leave message
  100.           requesting SIO support.
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.                                                                          ii
  109.  
  110.                                   TABLE OF CONTENTS
  111.  
  112.  
  113.           INTRODUCTION  . . . . . . . . . . . . . . . . . . . . . . . .   i
  114.                SIO Technical Reference Manual . . . . . . . . . . . . .   i
  115.                Support  . . . . . . . . . . . . . . . . . . . . . . . .   i
  116.                     OS/2 Vendor Forum on CompuServe . . . . . . . . . .   i
  117.  
  118.           WHAT IS SIO . . . . . . . . . . . . . . . . . . . . . . . . .   1
  119.  
  120.           WHAT IS VSIO  . . . . . . . . . . . . . . . . . . . . . . . .   2
  121.  
  122.           GETTING STARTED . . . . . . . . . . . . . . . . . . . . . . .   3
  123.  
  124.           Installing SIO/VSIO . . . . . . . . . . . . . . . . . . . . .   3
  125.                Quick Start  . . . . . . . . . . . . . . . . . . . . . .   3
  126.  
  127.           COMMAND LINE OPTIONS  . . . . . . . . . . . . . . . . . . . .   4
  128.                COM1 thru COMn . . . . . . . . . . . . . . . . . . . . .   4
  129.                I/O port address . . . . . . . . . . . . . . . . . . . .   4
  130.                IRQ number . . . . . . . . . . . . . . . . . . . . . . .   4
  131.                Forced 16550A  . . . . . . . . . . . . . . . . . . . . .   4
  132.  
  133.           PCMCIA  . . . . . . . . . . . . . . . . . . . . . . . . . . .   6
  134.  
  135.           AUTOMATIC IRQ ASSIGNMENT  . . . . . . . . . . . . . . . . . .   7
  136.  
  137.           DOS SETTINGS  . . . . . . . . . . . . . . . . . . . . . . . .   8
  138.                SIO_Allow_Access_COMn  . . . . . . . . . . . . . . . . .   8
  139.                SIO_Virtualize_COM_Ports . . . . . . . . . . . . . . . .   8
  140.                SIO_Virtualize_16550A  . . . . . . . . . . . . . . . . .   8
  141.                SIO_Share_Access_With_OS/2 . . . . . . . . . . . . . . .   8
  142.                SIO_Screen_Sync_Kludge . . . . . . . . . . . . . . . . .   9
  143.                SIO_Mode_DTR . . . . . . . . . . . . . . . . . . . . . .   9
  144.                SIO_Mode_IDSR  . . . . . . . . . . . . . . . . . . . .    10
  145.                SIO_Mode_OCTS  . . . . . . . . . . . . . . . . . . . .    11
  146.                SIO_Mode_ODSR  . . . . . . . . . . . . . . . . . . . .    11
  147.                SIO_Mode_RTS . . . . . . . . . . . . . . . . . . . . .    11
  148.                SIO_Mode_XON/XOFF  . . . . . . . . . . . . . . . . . .    12
  149.                SIO_Mode_FIFO_Load_Count . . . . . . . . . . . . . . .    13
  150.  
  151.           Configuration Profiles  . . . . . . . . . . . . . . . . . .    14
  152.                Seiko Smart Label Printer  . . . . . . . . . . . . . .    14
  153.  
  154.           Differences between SIO/VSIO and COM/VCOM . . . . . . . . .    15
  155.  
  156.           PROBLEMS AND SOLUTIONS  . . . . . . . . . . . . . . . . . .    17
  157.                IRQ for a port appears to be wrong . . . . . . . . . .    17
  158.                The modem will not initialize  . . . . . . . . . . . .    17
  159.                WinFax locks up during install . . . . . . . . . . . .    17
  160.                Telemate does not recognize VX00 as a FOSSIL . . . . .    17
  161.                Comm output is very slow from DOS  . . . . . . . . . .    17
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.                                                                         iii
  170.  
  171.                FaxWorks' driver FMD.SYS . . . . . . . . . . . . . . .    17
  172.                Procomm stops receiving  . . . . . . . . . . . . . . .    18
  173.                WinFax does not work well. . . . . . . . . . . . . . .    19
  174.                     Class 1 FAX modem . . . . . . . . . . . . . . . .    19
  175.                     Class 2 FAX modem . . . . . . . . . . . . . . . .    19
  176.                Fax/PM does not work . . . . . . . . . . . . . . . . .    20
  177.  
  178.           IRQ SHARING ON ISA  . . . . . . . . . . . . . . . . . . . .    21
  179.  
  180.           Appendix A, Hardware Port and IRQ Assignments . . . . . . .    22
  181.                Addresses and IRQs for COM1 and COM2 . . . . . . . . .    22
  182.                Defacto standard for COM3 and COM4 . . . . . . . . . .    22
  183.                Addresses and IRQ for COM3 through COM8 on the PS/2  .    22
  184.  
  185.           Appendix B, SIO Chips . . . . . . . . . . . . . . . . . . .    23
  186.                8250 . . . . . . . . . . . . . . . . . . . . . . . . .    23
  187.                8250A  . . . . . . . . . . . . . . . . . . . . . . . .    23
  188.                16450  . . . . . . . . . . . . . . . . . . . . . . . .    24
  189.                16C451 . . . . . . . . . . . . . . . . . . . . . . . .    24
  190.                16550 (Non A . . . . . . . . . . . . . . . . . . . . .    24
  191.                16550A . . . . . . . . . . . . . . . . . . . . . . . .    24
  192.                16550AF  . . . . . . . . . . . . . . . . . . . . . . .    24
  193.                16550AFN . . . . . . . . . . . . . . . . . . . . . . .    24
  194.                16550s Made by Western Digital . . . . . . . . . . . .    25
  195.                16C551 . . . . . . . . . . . . . . . . . . . . . . . .    25
  196.                16C552 . . . . . . . . . . . . . . . . . . . . . . . .    25
  197.                16C554 . . . . . . . . . . . . . . . . . . . . . . . .    25
  198.                82510  . . . . . . . . . . . . . . . . . . . . . . . .    25
  199.  
  200.           Appendix C, Multi-Port Serial I/0 Cards . . . . . . . . . .    26
  201.                STB 4COM . . . . . . . . . . . . . . . . . . . . . . .    26
  202.  
  203.           INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . .    27
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.                                                                           1
  212.  
  213.                                      WHAT IS SIO
  214.  
  215.           SIO is a Serial Input/Output (SIO) communications driver.  It
  216.           provides an interface between application programs and the serial
  217.           communications hardware.
  218.  
  219.           SIO had been designed as a high performance replacement for the
  220.           OS/2 device driver COM.SYS.  See the programmers reference manual
  221.           for information about the known differences between COM.SYS and
  222.           SIO.SYS.
  223.  
  224.           SIO only works with 8250 (type) serial I/O devices.  Such devices
  225.           include, but is not limited to the 8250A, 16450, 16550, 16550A
  226.           and the 82510.  If you have a PC that is an IBM or near
  227.           compatible which has a serial communication port, it is likely
  228.           that it contains one of these devices.  SIO will identify the
  229.           type of serial devices that it finds at load time.
  230.  
  231.           Like other Device Drivers, SIO will do very little standing
  232.           alone.  There must be an application(s) program that makes use of
  233.           SIO's functions before one will benefit from SIO.
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.                                                                           2
  242.  
  243.                                      WHAT IS VSIO
  244.  
  245.           VSIO is a Virtual Device Driver (VDD).  Virtual device drivers
  246.           provide services for DOS programs executing under OS/2.  Most
  247.           Virtual Device Drivers emulate a specific hardware device and/or
  248.           BIOS service.  The primary job of a Virtual Device Driver is to
  249.           convert misbehaved DOS input/output into well behaved
  250.           input/output.
  251.  
  252.           Using the protection mechanism of the 386 (and up) processor, a
  253.           Virtual Device Driver can instruct OS/2 to trap all input/output
  254.           for given hardware ports.  Once trapped, the Virtual Device
  255.           Driver (VDD) appropriately routes information to/from the
  256.           Physical Device Driver (PDD) and to/from the DOS program.
  257.  
  258.           VSIO creates a virtual (imaginary) 16550A or 16450 (UART) in
  259.           software.  VSIO does not emulate any BIOS services.  All of the
  260.           hardware registers of the virtual UART are simulated by VSIO. 
  261.           VSIO does not attempt to simulate the timing of the real UARTs. 
  262.           DOS programs that depend on the timing of real hardware UARTs may
  263.           have problems executing under VSIO.
  264.  
  265.           All DOS programs that execute under VSIO should have RTS/CTS
  266.           handshaking enabled regardless of the baud rate.  Note that this
  267.           enabling of RTS/CTS handshaking is independent of the RTS/CTS
  268.           handshaking used by SIO.
  269.  
  270.           The virtualization (simulation) provided by VSIO is not (and can
  271.           not be) exact.  However, most well written DOS programs should
  272.           not have problems.
  273.  
  274.           VSIO will only work with SIO installed and the versions of
  275.           SIO/VSIO must match.  If VSIO refuses to install, you most likely
  276.           have a version mismatch.  VSIO will not work with any other
  277.           device driver like COM.SYS.
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.                                                                           3
  286.  
  287.                                    GETTING STARTED
  288.  
  289.           Installing SIO/VSIO
  290.  
  291.           SIO is distributed as a ZIP file.  To extract the individual
  292.           files from the distribution file you need the program PKUNZIP or
  293.           an equivalent.  PKUNZIP is a product of PKWARE and can be
  294.           downloaded from almost any bulletin board system (BBS).  You
  295.           probably already have PKUNZIP and know how to use it, otherwise I
  296.           doubt that you would be reading this.  When PKUNZIP is used to
  297.           extract the various files, -AV should appear after each file name
  298.           as it is extracted.  In addition, the message:
  299.  
  300.                Authentic files Verified!
  301.  
  302.           should appear after the extraction process.  If this message does
  303.           not appear, or appears with a name other than Raymond L. Gwinn,
  304.           the file is not an original SIO distribution file.
  305.  
  306.           The only file that the basic user actually needs is SIO.SYS. 
  307.           Virtual DOS machine (VDM) users will also want VSIO.SYS.  Copy
  308.           one or both of these files to a convenient directory or
  309.           subdirectory on your system.
  310.  
  311.           Quick Start
  312.  
  313.           Copy SIO.SYS and VSIO.SYS to the root directory of your boot
  314.           drive or diskette.
  315.  
  316.           If you are going to use standard communications ports, either
  317.           COM1 or COM2 on an ISA buss (AT or clone), or COM1 through COM4
  318.           on a PS/2, then add the following line to your CONFIG.SYS file:
  319.  
  320.                DEVICE=SIO.SYS
  321.                DEVICE=VSIO.SYS
  322.  
  323.           Be sure to REMark out the COM.SYS and VCOM.SYS device drivers if
  324.           they exist in your CONFIG.SYS.
  325.  
  326.           With the above statements you will be able to use standard COM1
  327.           and/or COM2 (if they exist) on any PC system know to the author.
  328.  
  329.           If your setup is more complex, you must read on.
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.                                                                           4
  338.  
  339.                                  COMMAND LINE OPTIONS
  340.  
  341.           The command line options are included in the command line that
  342.           loads SIO in the CONFIG.SYS file.  VSIO has no command line
  343.           options.  Command line options are usually grouped by port within
  344.           parenthesis.
  345.  
  346.           If you use only COM1 and/or COM2, at the standard IRQ and port
  347.           addresses, you will not need any command line options.  However,
  348.           up to four serial communications ports, COM1 thru COM4, can be
  349.           specified at any base port address and any IRQ.  On PS/2 systems
  350.           and some ISA cards, SIO/VSIO supports multiple communications
  351.           devices sharing the same IRQ.
  352.  
  353.           The basic command line syntax is as follows:
  354.  
  355.                DEVICE=SIO.SYS (Cn, An, In, Ig, Fc) [(Cn, An, In, Ig, Fc)]
  356.  
  357.           Where
  358.                "Cn" is the comm port number (1 thru 4) or the string COM1
  359.                thru COMn.  The port number may proceeded by an asterisk "*"
  360.                to indicate that the port may be used as a PCMCIA comm port
  361.                (eg *1 or *COM1).
  362.  
  363.                "An" is a hexadecimal number that defines the base hardware
  364.                I/O port address for the communications port.  If this field
  365.                is left blank, the default I/O port address is used for the
  366.                comm port.  Note that default I/O addresses exist only for
  367.                COM1 through COM4 on AT type systems and for COM1 through
  368.                COM8 on PS/2 systems.
  369.  
  370.                "In" is an IRQ number (0 thru 15) or the string IRQ0 thru
  371.                IRQ15.  It is best if one leaves this field blank and allows
  372.                SIO to determine the IRQ, see AUTOMATIC IRQ ASSIGNMENT
  373.                below.
  374.  
  375.                "Ig" is an ignored parameter.  If exists for compatibility
  376.                with COM.SYS.
  377.  
  378.                "Fc" is the Forced 16550A chip parameter.  If an F is placed
  379.                in this position, a 16550A UART chip type is forced
  380.                regardless of the automatically detected chip type.
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.                                                                           5
  389.  
  390.  
  391.           For a PC with COM1 and COM2 of standard configuration, the
  392.           following command line will load SIO correctly:
  393.  
  394.                DEVICE=SIO.SYS (1, 3F8, 4) (2, 2f8, 3)
  395.  
  396.           A more readable, but identical, command line is:
  397.  
  398.                DEVICE=SIO.SYS (COM1,3F8,IRQ4) (COM2,2F8,IRQ3)
  399.  
  400.           Forcing a 16550A on COM1 would be as follows:
  401.  
  402.                DEVICE=SIO.SYS (COM1,3F8,IRQ4,,F) (COM2,2F8,IRQ3)
  403.  
  404.           In a similar manner, up to sixteen serial communications ports
  405.           (four in the downloadable version) can be defined and supported
  406.           by SIO and VSIO.
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.                                                                           6
  415.  
  416.                                         PCMCIA
  417.  
  418.           OS/2 Version 2.1 introduced limited PCMCIA support which includes
  419.           PCMCIA modems.  I am told that the PCMCIA support will be changed
  420.           in the future, so the following information may change.
  421.  
  422.           SIO supports PCMCIA comm ports or modems.  However, several other
  423.           device drivers or programs are needed to use a PCMCIA modem under
  424.           OS/2.  One of the needed drivers is provided with OS/2 version
  425.           2.1 and is called PCMCIA.SYS which provided "Card Services".
  426.  
  427.           Another needed driver, "Socket Services", is usually supplied by
  428.           the computer manufacturer (or supplier).
  429.  
  430.           A third driver is usually supplied by the modem manufacture (or
  431.           supplier).  This driver is referred to as the "Client Driver".
  432.  
  433.           What all of the above boils down to is that these drivers, or
  434.           their equivalents are needed to enable the PCMCIA modem.  Once
  435.           enabled, SIO can then use the modem.
  436.  
  437.           The Client Driver (or equivalent) usually allows the modems I/O
  438.           address and IRQ to be assigned.  If so, the address and IRQ
  439.           assigned at the Client Driver must match an address/IRQ
  440.           combination for a comm port known to SIO.  This is not a problem
  441.           if one is using standard addresses and IRQs for the comm ports.
  442.  
  443.           If the OS/2 drivers are not available, you can also try to enable
  444.           your PCMCIA modem using a DOS VDM and drivers/programs supplied
  445.           for DOS.  This has worked for many users.
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.                                                                           7
  454.  
  455.  
  456.                                AUTOMATIC IRQ ASSIGNMENT
  457.  
  458.           SIO will automatically locate the IRQ that a comm port is
  459.           attached to.  The IRQ used by SIO for a given comm port is
  460.           assigned in the following manner:
  461.  
  462.           1 - If an IRQ is specified in the SIO command line then that IRQ
  463.           is used.  However, SIO will display a warning message if the IRQ
  464.           seems to be other than specified.
  465.  
  466.           2 - If no IRQ is specified in the command line, and if SIO
  467.           detected the IRQ then the detected IRQ is used.
  468.  
  469.           3 - If no IRQ is specified in the command, and if SIO could NOT
  470.           detect an IRQ then the default IRQ for the comm port is used. 
  471.           SIO will also display a warning message in this case.
  472.  
  473.           The following STYLE command line is recommended for all but the
  474.           most unusual systems.  That is, specify only the port number for
  475.           those above COM2 (to tell SIO to support those ports) and let SIO
  476.           do the rest.
  477.  
  478.           DEVICE=SIO.SYS (COM3) (COM4)
  479.  
  480.           If you do not have a COM3 or COM4, or if the mouse is using the
  481.           only comm port above COM2 then the following command line should
  482.           be used.
  483.  
  484.           DEVICE=SIO.SYS
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.                                                                           8
  493.  
  494.                                      DOS SETTINGS
  495.  
  496.           VSIO gets its operational characteristics from DOS Settings. 
  497.           Several basic DOS Settings are provided.  They specify the type
  498.           of access (if any) that a DOS program is to have to a
  499.           communication port that SIO controls.
  500.  
  501.           All of the DOS Settings default to what most users should use
  502.           most of the time (which is ON).  Also, all of the DOS Settings
  503.           are prefixed with SIO_.
  504.  
  505.           If any of the DOS settings are changed, then the DOS session must
  506.           be restarted from the Work Place Shell for the changed setting to
  507.           take affect.
  508.  
  509.           The provided DOS Settings and their meaning follow:
  510.  
  511.                "SIO_Allow_Access_COMn" (where n is 1 thru 4).  This DOS
  512.                setting defaults to ON.  If this setting is turned OFF for
  513.                any or all of the ports, the DOS program will not be allowed
  514.                any access to that port(s).
  515.  
  516.                "SIO_Virtualize_COM_Ports"  This Dos setting defaults to ON
  517.                and it applies to all communications ports used by the DOS
  518.                session.  When ON, this DOS setting means VSIO is to act as
  519.                an interface between the SIO and the DOS program.  When OFF,
  520.                the DOS program is given direct access to the hardware ports
  521.                of the UART(s).
  522.  
  523.                "SIO_Virtualize_16550A"  This DOS setting defaults to ON and
  524.                it applies to all communications ports used by the DOS
  525.                session.  When ON, VSIO will simulate a 16550A.  When OFF,
  526.                VSIO will simulate a 16450.  Some DOS programs may not work
  527.                when a 16550A is simulated.  Turning this setting off may
  528.                allow the program to work (but slower).
  529.  
  530.                "SIO_Share_Access_With_OS/2"  This DOS setting defaults to
  531.                ON and it applies to all communications ports used by the
  532.                DOS session.  When ON, SIO will allow an OS/2 session to
  533.                access a communications port which the DOS session first
  534.                opened (and has not closed).  If set to OFF, then the DOS
  535.                session will have exclusive use of the communications
  536.                port(s) that it uses.
  537.  
  538.                This setting does not apply to a second DOS session
  539.                attempting to access a communications port,  two different
  540.                DOS sessions are never allowed to access the same port at
  541.                the same time.  Additionally, this setting has no affect
  542.                upon the access to a communications port which is first
  543.                opened by an OS/2 session.
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.                                                                           9
  552.  
  553.  
  554.                "SIO_Screen_Sync_Kludge" DOS setting.  This DOS setting
  555.                defaults to off and it applies to all communications ports
  556.                used by the DOS session.  Some DOS BBS programs (such as
  557.                Wildcat) and many DOS Door programs attempt to synchronize
  558.                the screen output with transmitted data.  This plays havoc
  559.                with a multi tasking system like OS/2 and results in very
  560.                slow transmitted data.  When this setting is on, an attempt
  561.                is made to fake out these misbehaved programs and allow them
  562.                to run at normal transmit speed.  This setting should not be
  563.                turned on unless you experience VERY slow transmission from
  564.                a DOS program.
  565.  
  566.           All of the DOS Settings that begin with "SIO_Mode"  allows one to
  567.           construct a MODE command for a DOS session.  These settings apply
  568.           to SIO proper, and not necessarily to the DOS program itself. 
  569.           For example, if you set XON/XOFF handshake with the appropriate
  570.           SIO_Mode setting, you are specifying that SIO is to implement the
  571.           handshaking.  The DOS application itself will be unaware of this
  572.           handshaking.  This can be very confusing, so think it through
  573.           before you start changing the defaults.
  574.  
  575.           The "SIO_Mode" settings WILL NOT BE APPLIED IF THE COMM PORT IS
  576.           ALREADY OPEN WHEN THE DOS SESSION FIRST ACCESSES THE COMM PORT. 
  577.           This means that the "SIO_Mode" settings will NOT be asserted for
  578.           spawned DOS comm programs.  That is, for spawned DOS comm
  579.           programs, the mode of operation that is already in effect will
  580.           continue in effect and the "SIO_Mode" settings are ignored.
  581.  
  582.                "SIO_Mode_DTR"  This setting has three options that specify
  583.                how SIO and VSIO are to treat the DTR signal.  The there
  584.                available option are:
  585.                          Turn ON at OPEN, OFF at CLOSE.
  586.                          No Change at OPEN or CLOSE.
  587.                          HandShake Signal, as in DTR/DSR.
  588.  
  589.                     If either of the first two settings is selected, then
  590.                     basically the DOS application has direct control over
  591.                     the DTR signal.  If the first option (the default) is
  592.                     selected, then DTR will be turned on by SIO when the
  593.                     DOS program first touches the comm port.
  594.  
  595.                     If the third option is selected, then SIO will use DTR
  596.                     as a handshaking signal.  That is, DTR will be turned
  597.                     off if SIO can not accept any further receive data.  In
  598.                     addition, if the DOS application program turns off the
  599.                     Virtual DTR, VSIO will stop supplying the DOS
  600.                     application with receive data.
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.                                                                          10
  609.  
  610.  
  611.                "SIO_Mode_IDSR"  This setting specifies how SIO is to react
  612.                to received data and the DSR signal.  The two available
  613.                options are:
  614.                          Ignore DSR During Receive.
  615.                          Required for Valid Receive Data.
  616.  
  617.                     If the first option (the default) is selected, then SIO
  618.                     will ignore DTR and accept all received data.  If the
  619.                     second option is selected, then SIO will ignore
  620.                     received data when the DSR signal is off.  VSIO ignores
  621.                     this DOS setting.
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.                                                                          11
  630.  
  631.  
  632.                "SIO_Mode_OCTS"  This setting specifies how SIO will react
  633.                to the CTS signal when transmitting data.  The two available
  634.                options are:
  635.                          HandShake Signal, as in RTS/CTS.
  636.                          Ignore CTS During Transmit.
  637.  
  638.                     If the first option (the default) is selected, then SIO
  639.                     will not transmit data when the CTS signal is off.  If
  640.                     the second option is selected, then SIO will ignore CTS
  641.                     during transmit.  Note that this setting should be set
  642.                     to "Ignore" for 3 wire connections like the Seiko Smart
  643.                     Label Printer, and Laplink.  VSIO ignores this setting
  644.  
  645.                "SIO_Mode_ODSR"  This setting specifies how SIO is to react
  646.                to the DSR signal during transmit.  The two available
  647.                options are:
  648.                          Ignore DSR During Transmit.
  649.                          HandShake Signal, as in DTR/DSR.
  650.  
  651.                     If the first option (the default) is selected, then SIO
  652.                     will ignore DSR during transmit.  If the second option
  653.                     is selected, then SIO will not transmit data when the
  654.                     DSR signal is off.  VSIO ignores this setting.
  655.  
  656.  
  657.                "SIO_Mode_RTS" This setting has three options that specify
  658.                how SIO and VSIO are to treat the RTS signal.  The there
  659.                available option are:
  660.                          HandShake Signal, as in RTS/CTS.
  661.                          No Change at OPEN or CLOSE.
  662.                          Turn ON at OPEN, OFF at CLOSE.
  663.  
  664.                     If either of the last two settings is selected, then
  665.                     basically the DOS application has direct control over
  666.                     the RTS signal.  If the last option is selected, then
  667.                     RTS will be turned on by SIO when the DOS program first
  668.                     touches the comm port.
  669.  
  670.                     If the first option (the default) is selected, then SIO
  671.                     will use RTS as a handshaking signal.  That is, RTS
  672.                     will be turned off if SIO can not accept any further
  673.                     receive data.  In addition, if the DOS application
  674.                     program turns off the virtual RTS signal, VSIO will
  675.                     stop supplying the DOS application with receive data.
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.                                                                          12
  684.  
  685.  
  686.                "SIO_Mode_XON/XOFF"  This setting specifies if (and how) SIO
  687.                is to use XON/XOFF flow control.  The four options are:
  688.                          No XON/XOFF flow control by SIO.
  689.                          Received XON is flow control.
  690.                          Sent XON is flow control.
  691.                          Rcvd and Sent XON is flow control.
  692.  
  693.                     The first option (the default) specifies that SIO is
  694.                     not to use XON/XOFF flow control at all.  The second
  695.                     option specifies that SIO is to treat received XON/XOFF
  696.                     as flow control, but that SIO must not send XON/XOFF as
  697.                     flow control characters.  The third option specifies
  698.                     that SIO may send XON/XOFF as flow control characters,
  699.                     but that received XON/XOFF characters are to be treated
  700.                     as normal data.  The fourth option turns on XON/XOFF
  701.                     flow control in both directions, meaning that all sent
  702.                     and received XON/XOFF characters are flow control.
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.                                                                          13
  711.  
  712.  
  713.                "SIO_Mode_FIFO_Load_Count"  This setting specifies how many
  714.                characters that SIO will load into a 16550A UART at one
  715.                time.  The choices are 1 and 16 (16 is the default).  The
  716.                only case known to the author where one would select a
  717.                setting of 1, is when very fast reaction to flow control is
  718.                needed.  One such case is the Seiko Smart Label Printer
  719.                which uses XON/XOFF flow control and a 3 wire connection. 
  720.                If one is using a 16550 with a load count of 16, then 16
  721.                additional characters may be sent after an XOFF is receive. 
  722.                This condition will overrun the Seiko Printer.  If the "Load
  723.                Count" is set to 1, then SIO will transmit (at most) two
  724.                additional characters following a received XOFF which allows
  725.                the Seiko Printer to work.  A setting of 1 will cause
  726.                additional system overhead due to additional transmit
  727.                interrupts.
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.                                                                          14
  736.  
  737.  
  738.                                 Configuration Profiles
  739.  
  740.           I will attempt to provide the DOS Settings that one should try
  741.           for DOS communications programs in this section.  The settings
  742.           may not work on all systems.  I will add to this section as I
  743.           receive information from users.  All DOS Settings that are not
  744.           given should be at their defaults.
  745.  
  746.           Seiko Smart Label Printer.
  747.                SIO_Mode_OCTS               Ignore CTS During Transmit.
  748.                SIO_Mode_FIFO_Load_Count    1.
  749.                SIO_Mode_XON/XOFF"          Received XON is flow control.
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.                                                                          15
  758.  
  759.                       Differences between SIO/VSIO and COM/VCOM
  760.  
  761.           What follows is some of the differences between SIO/VSIO and
  762.           COM/VCOM that are know to the author.
  763.  
  764.           1 -  COM.SYS will automatically seek out and support four
  765.                comm ports, COM1 through COM4.  SIO.SYS will
  766.                automatically seek out and support only COM1 and COM2. 
  767.                If SIO.SYS is to support more than two comm ports, they
  768.                must be defined in the command line that loads SIO.SYS. 
  769.                For example, DEVICE=SIO.SYS (COM3) (COM4) will cause
  770.                SIO.SYS to support four comm ports.
  771.  
  772.           2 -  In the absence of overrides in the command line,
  773.                COM.SYS will seek out four comm ports in the sequence
  774.                of I/O ports 3F8h, 2F8h, 3E8h and 2E8h.  The first port
  775.                found in this sequence is given the logical name COM1,
  776.                the second is COM2 etc.  This means that the comm port
  777.                at 2F8h could become COM1.  In the opinion of the
  778.                author, this confuses some users to frustration.
  779.  
  780.                With no command line overrides, SIO.SYS uses a fixed
  781.                I/O port concept.  That is, COM1 is always at I/O port
  782.                3F8h, COM2 is always at 2F8h, etc.  Another way of
  783.                looking at this is;  if no comm port exists at port
  784.                3F8h, then you do not have a COM1.  SIO.SYS will not
  785.                move another (found) comm port into the logical COM1
  786.                slot.
  787.  
  788.           3 -  VSIO opens a comm port for a DOS session with sharing
  789.                allowed.  VCOM uses an "exclusive use" open for DOS
  790.                sessions.
  791.  
  792.           4 -  SIO.SYS always controls the FIFOs of the 16550 UART. 
  793.                SIO.SYS will not allow an application program (OS2 or DOS)
  794.                to disable the FIFOs of a real 16550.  The application may
  795.                specify the transmit fifo load count.
  796.  
  797.           5 -  SIO.SYS will accept any number between 50 and 115200 as a
  798.                valid baud rate.  For example, if an application program
  799.                attempts to set a baud rate of 9990 bps, COM.SYS will reject
  800.                it and SIO.SYS will accept it.
  801.  
  802.           6 -  The last decimal digit of a baud rate given to SIO must be
  803.                zero.  SIO.SYS will not support baud rates like 75 or 134.5. 
  804.                If given, they will be rounded to 80 and 130 respectively.
  805.  
  806.           7 -  SIO/VSIO execute faster than COM/VCOM.  This means that some
  807.                applications, that are timing dependant, may not work under
  808.                SIO/VSIO that do work under COM/VCOM.
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.                                                                          16
  817.  
  818.  
  819.           8 -  VSIO optionally (and by default) simulates a 16550A for DOS
  820.                sessions.  VCOM simulates a 8250/16450.
  821.  
  822.           9 -  SIO/VSIO provides more reliable active flow control for DOS
  823.                sessions.  For example, if RTS/CTS handshaking is in use,
  824.                VSIO processes the RTS settings by the DOS program while SIO
  825.                completely controls the real RTS signal.  COM/VCOM simply
  826.                passes the RTS signal directly to the hardware.
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.                                                                          17
  835.  
  836.  
  837.                                 PROBLEMS AND SOLUTIONS
  838.  
  839.           1 -  Port already in use is displayed.
  840.  
  841.                This message is displayed when the comm port or the IRQ is
  842.                in use.  If the comm port is not actually in use, the IRQ is
  843.                most likely in use.
  844.  
  845.           2 -  SIO displays a warning message that the IRQ for a port
  846.                appears to be wrong, but the port works.
  847.  
  848.                SIO probably detected more than one IRQ attached to the comm
  849.                port.  This indicates a possible hardware problem with your
  850.                system that you may want to have checked.
  851.  
  852.           3 - The modem will not initialize.
  853.  
  854.                Configure your comm program(s) to insert a delay between
  855.                modem initialization characters as they are sent to the
  856.                modem.
  857.  
  858.           4 - WinFax locks up during install.
  859.  
  860.                During the WinFax install, temporally turn OFF the DOS
  861.                setting SIO_Virtualize_COM_Ports.  Once installation is
  862.                complete, the setting SIO_Virualize_COM_Ports can be
  863.                restored.
  864.  
  865.           5 - Telemate does not recognize VX00 as a FOSSIL.
  866.  
  867.                Set the baud rate in Telemate to less than 57600.
  868.  
  869.           6 -  Comm output is very slow from DOS.
  870.  
  871.                This is a problem common to many DOS BBS and Door programs. 
  872.                They attempt to synchronize the local screen with the
  873.                transmitted data.  That is, they send a character, wait
  874.                until it is sent and then display the character on the local
  875.                screen.  This does not cause a problem for the signal
  876.                tasking DOS environment.  However, this procedure causes at
  877.                least two (probably more) context switches in the multi-
  878.                tasking environment of OS2, which in turn brings the
  879.                processor to its knees.  One possible solution is for the
  880.                programmer to synchronize line by line instead of character
  881.                by character.
  882.  
  883.           7 -  FaxWorks' driver FMD.SYS cannot access a comm port when SIO
  884.                is used, but works okay with COM.SYS.
  885.  
  886.                The problem may be that the comm port is in use (often by a
  887.                DOS program).  In all cases known to the author, this has
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.                                                                          18
  896.  
  897.                been the case.  That is, FMD.SYS can not access the port
  898.                because it is in use, and FMD.SYS does not report the
  899.                problem in a manner that is understandable to many users.
  900.  
  901.                COM.SYS seems to have a bug that will allow an OS2 device
  902.                driver (like FMD.SYS) to use a comm port when it is in use
  903.                by a another device driver, and it (COM.SYS) does not cause
  904.                an error when it should.  The exact conditions of this is
  905.                not fully understood by the author and the above supposition
  906.                may not be totally correct.
  907.  
  908.           8 -  Procomm stops receiving
  909.  
  910.                Procomm seems to have a bug in its implementation of RTS/CTS
  911.                handshaking.  The problem shows up most often when Procomm
  912.                is windowed.  Under certain conditions, Procomm will turn
  913.                the virtual RTS OFF and does not turn it ON again.  This
  914.                prevents VSIO from sending further data to Procomm if
  915.                SIO_Mode_RTS is set for RTS/CTS handshake.  A solution to
  916.                the problem that seems to work is to set SIO_Mode_RTS to
  917.                other than RTS/CTS handshake.  Note that SIO_Mode_RTS should
  918.                be set for RTS/CTS handshake under almost all other
  919.                conditions.
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.                                                                          19
  928.  
  929.  
  930.           9 - WinFax does not work well.
  931.  
  932.                a- Connect problems with recipient's fax station
  933.  
  934.                b- Cannot send more than one page of a multiple page fax
  935.  
  936.                c- Transmission fails between pages
  937.  
  938.                d- Transmitted pages are corrupted, missing parts, or cut
  939.                off.
  940.  
  941.                Class 1 FAX modem.
  942.                          The modem init strings set by WinFax 3.0 will work
  943.                          in the single-layered comm world of DOS and
  944.                          Windows.  However, these modem init strings will
  945.                          not work in the multi-layered comm environment
  946.                          used by OS/2.  Specifically, WinFax 3.0 sets the
  947.                          modem to use only Xon/Xoff flow control.  Ideally,
  948.                          both Xon/Xoff and Hardware handshaking needs to be
  949.                          set.  If only one handshake can be set, set the
  950.                          modem to Hardware handshake.  For USR FAX modems,
  951.                          use &H3, for many other modems, the setting is
  952.                          &K3.  Additionally, for WinFax 3.04 and up, place
  953.                          the following in your WINFAX.INI file:
  954.                               HdwFlowControl=1
  955.  
  956.                Class 2 FAX modem.
  957.                          It seems to the author that hardware handshake
  958.                          screws up some (possibly all) class 2 FAX modems. 
  959.                          Therefore, when using a class 2 modem, WinFax
  960.                          should be configured to use XON/XOFF handshaking. 
  961.                          For WinFax 3.04 and up, place the following in
  962.                          your WINFAX.INI file:
  963.                               HdwFlowControl=0
  964.  
  965.                          The author feels that the inability to use
  966.                          hardware handshake with class 2 FAX modems is a
  967.                          serious design deficiency.
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.                                                                          20
  976.  
  977.  
  978.           10 - Fax/PM does not work.
  979.                     I have seen many reports that Fax/PM does not work with
  980.                     SIO.  I have not found this to be the case.  The
  981.                     publishers of Fax/PM were kind enough to supply me with
  982.                     Fax/PM and a later update.  I have tested all versions
  983.                     of Fax/PM on several systems and it always works for
  984.                     me.
  985.  
  986.                     Fax/PM's modem initialization and usage is a bit
  987.                     confusing to me.  I believe they have an &F in an
  988.                     internal modem init string that is not visible to the
  989.                     user.  This overrides any settings that the user has
  990.                     programmed into the modem and Fax/PM does not seem to
  991.                     provide an appropriate modem init string automatically. 
  992.                     If my supposition is correct, this means that the
  993.                     Fax/PM user should always supply a complete modem init
  994.                     string, and should not depend on preset settings they
  995.                     have programmed into the modem.
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.                                                                          21
  1004.  
  1005.                                   IRQ SHARING ON ISA
  1006.  
  1007.           Sharing the same IRQ for multiple communications ports on ISA
  1008.           systems is not for the weak of heart (or mind).  If you have
  1009.           problems with shared IRQs, DO NOT contact the author.  Contact
  1010.           the board or computer manufacturer for help.
  1011.  
  1012.           Some general rules are as follows:
  1013.  
  1014.           1 - Two different boards (plugged into different slots) can not
  1015.           share the same IRQ.  This is a hardware limitation of ISA systems
  1016.           and can not be corrected by software.  This means that you can
  1017.           not plug in two internal modems, set them for the same IRQ and
  1018.           expect them to work.  This does not apply to PS/2 systems.  The
  1019.           problem of multiple boards sharing the same IRQ was corrected in
  1020.           the PS/2's buss design.
  1021.  
  1022.           2 - SIO can not (will not) share an IRQ with other device drivers
  1023.           at the same time.  SIO releases IRQs that it is currently not
  1024.           using.  This is different form how COM.SYS works.  This
  1025.           difference may show up as an unexpected "port already in use"
  1026.           error that does not occur with COM.SYS.  I have received reports
  1027.           that the SDLC drivers try to concurrently share IRQs with the
  1028.           ASYNC driver.  SIO.SYS will not allow this while COM.SYS will.
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.                                                                          22
  1037.  
  1038.                     Appendix A, Hardware Port and IRQ Assignments
  1039.  
  1040.           I have obtained the following information from various sources. 
  1041.           Accuracy is not guaranteed.  In fact, nothing in this document is
  1042.           guaranteed.
  1043.  
  1044.           Addresses and IRQs for COM1 and COM2
  1045.  
  1046.                COM1 uses 03F8h and IRQ4
  1047.                COM2 uses 02F8h and IRQ3
  1048.  
  1049.           Defacto standard for COM3 and COM4 for PC, XT and AT
  1050.  
  1051.                COM3 uses 03E8h and IRQ4
  1052.                COM4 uses 02E8h and IRQ3
  1053.  
  1054.           Addresses and IRQ for COM3 through COM8 on the PS/2
  1055.  
  1056.                COM3 uses 3220h and IRQ3
  1057.                COM4 uses 3228h and IRQ3
  1058.                COM5 uses 4220h and IRQ3
  1059.                COM6 uses 4228h and IRQ3
  1060.                COM7 uses 5220h and IRQ3
  1061.                COM8 uses 5228h and IRQ3
  1062.  
  1063.           All PCs (know to the author) prior to the PS/2 and EISA only use
  1064.           10 bits to address hardware I/0 ports.  Systems prior to the PS/2
  1065.           and EISA can not address the standard PS/2 addresses for COM3
  1066.           through COM8.  If an AT or below attempts to address COM3 through
  1067.           COM8 using the PS/2 addresses, only the low 10 bits of the
  1068.           address are used.  That is, the high digit of the hexadecimal
  1069.           address will be ignored.  This means that any reference to COM3
  1070.           through COM8 will actually address ports 220h through 22Fh on
  1071.           older PCs.
  1072.  
  1073.           One should avoid expansion boards that use ports 220h through
  1074.           22Fh unless the expansion board is a serial I/O board. 
  1075.  
  1076.           SIO will (attempt to) determine the hardware architecture
  1077.           (ISA/EISA and PS/2) that it is being executed on and use the
  1078.           appropriate hardware port addresses for COM1 thru COM4 as
  1079.           defaults.
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.                                                                          23
  1088.  
  1089.                                 Appendix B, SIO Chips
  1090.  
  1091.  
  1092.           The following is a collection of comments developed from hearsay,
  1093.           random documents, experience, and technical specifications. So,
  1094.           take it with a grain of salt.  Order information from the various
  1095.           manufactures if you want accurate information.
  1096.  
  1097.           Very good reference books are available from National
  1098.           Semiconductor Corporation.  They cover most of the SIO devices
  1099.           (also called UARTs) that you will find in many PCs and clones.  I
  1100.           am not sure that books can be ordered directly from National
  1101.           semiconductor. They may require that you get it from a
  1102.           distributor.  In any case, the address on the back of the one
  1103.           manual is:
  1104.  
  1105.                National Semiconductor Corporation
  1106.                2900 Semiconductor Drive
  1107.                P.O. Box 58090
  1108.                Santa Clara, CA 95052-8090
  1109.  
  1110.                Tel:(408)721-5000
  1111.                TWX:(910)339-9240
  1112.  
  1113.           8250
  1114.  
  1115.           As best that I know, the 8250 was the first SIO chip (integrated
  1116.           circuit) that was used by the IBM PC and many clones.  In my
  1117.           opinion, it was a poor choice on the part of IBM.  I feel many
  1118.           superior devices, at comparable prices, were readily available. 
  1119.           At that time, I feel the 8251A or the 8530 would have been better
  1120.           choices.  But, they used the 8250 and therefore we must use it.
  1121.  
  1122.           From a hardware standpoint the 8250 is a relatively slow device. 
  1123.           It is advisable that programmers not perform successive inputs or
  1124.           outputs to this device.  It seems that software programs can load
  1125.           the various registers of the 8250 faster than it can process the
  1126.           information.  The 8250 had a total of 7 registers.  The
  1127.           specifications state that 56kb is the maximum baud rate.
  1128.  
  1129.           8250A
  1130.  
  1131.           I believe the 8250A is the 8250 with some bug fixes.  I have no
  1132.           idea what the bugs may have been.  A quick glance at the
  1133.           specifications shows the speed of the 8250 and 8250A to be much
  1134.           the same.  The 8250A added an 8th register.  This additional
  1135.           register enables software to detect if an 8250 is installed.  The
  1136.           specifications state that 56kb is the maximum baud rate.
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.                                                                          24
  1145.  
  1146.           16450
  1147.  
  1148.           The 16450 seems to be a speeded up version of the 8250A.  There
  1149.           is no direct way (that I know of) for software to detect the
  1150.           difference between an 8250A and a 16450.  I believe the 16450 was
  1151.           developed to eliminate the need for software to insert delays
  1152.           between successive accesses to the device.  The specifications
  1153.           indicate the 16450 is a much faster device than its predecessors. 
  1154.           The additional speed is only the speed at which the processor can
  1155.           access the device.  The maximum baud rate for the 16450 is still
  1156.           stated at 56kb.  However, I have been told by some people that
  1157.           they have run the 16450 successfully at much higher speeds. I do
  1158.           not believe there was ever a 16450A.
  1159.  
  1160.           16C451
  1161.  
  1162.           The 16C451 is a CMOS version of the 16450.  CMOS is a term for
  1163.           the material and manufacturing process used to make the part. 
  1164.           CMOS typically uses less power than other technologies.  If you
  1165.           are not designing hardware, you should view the 16C451 as a
  1166.           16450.
  1167.  
  1168.           16550 (Non A)
  1169.  
  1170.           It is hard to find a 16550 (Non A).  I was told by National
  1171.           Semiconductor that they did everything they could to get all
  1172.           16550s back.  SIO will detect a 16550 and tell you if you have
  1173.           one.  I am told that the 16550 was installed in early PS/2
  1174.           systems.
  1175.  
  1176.           The 16550 was the first shot at a FIFOed version of the 8250
  1177.           family from National semiconductor.  However, I was told by
  1178.           National Semiconductor that the FIFOs of the 16550 are not
  1179.           reliable and they should not be enabled.  SIO will treat a 16550
  1180.           like a 16450.  In this mode, they are reliable.  National
  1181.           Semiconductor would not provide me with a specification for the
  1182.           16550.  However, I suspect its maximum baud rate is the same as
  1183.           the 16550A which is 256kb.
  1184.  
  1185.           16550A, 16550AF and 16550AFN
  1186.  
  1187.           In the manuals that I have, National Semiconductor does not
  1188.           explain the differences between the 16550A and the 16550AF.  I
  1189.           suspect the AF part may have a few bug fixes.  I believe the N in
  1190.           AFN describes packaging, ceramic versus plastic, DIP versus
  1191.           surface mount etc.
  1192.  
  1193.           In the opinion of the author, there is no substitute for the
  1194.           16550A (and its successors) in the 8250 type series.  The 16550A
  1195.           is compatible with most software written for the entire family of
  1196.           8250 type devices.  Programs that are 16550A aware can provide
  1197.           much improved performance over previous devices.
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.                                                                          25
  1206.  
  1207.  
  1208.           The maximum baud rate for the 16550A is specified at 256kb. 
  1209.           However, due to the hardware design of the PC et al, 115kb is the
  1210.           maximum baud rate that can be programmed by software.
  1211.  
  1212.           The 16550A can be plugged into the same socket that contains an
  1213.           8250, 8250A or 16450.  If your SIO expansion board has the SIO
  1214.           chips in sockets, you can upgrade to the 16550A by simply
  1215.           removing the old chips and replacing them with 16550As.
  1216.  
  1217.           The key to the performance increase of the 16550A is its FIFOs. 
  1218.           It has 16 byte FIFOs for both transmit and receive data.
  1219.  
  1220.           16550s Made by Western Digital
  1221.  
  1222.           I have been told, but I have not verified for myself, that 16550s
  1223.           made by Western Digital have a problem with their FIFOs when
  1224.           working at 2400 baud or below.
  1225.  
  1226.           16C551
  1227.  
  1228.           The 16C551 is a CMOS version of the 16550AF.  See the above
  1229.           description of the 16C451 for a discussion of CMOS.  Do not feel
  1230.           you need to upgrade from a 16550A or AF to a 16C551.  There is no
  1231.           gain from an existing users point of view.
  1232.  
  1233.           16C552
  1234.  
  1235.           The 16C552 is two 16C551s on a single chip.
  1236.  
  1237.           16C554
  1238.  
  1239.           The 16C554 is four 16C551s on a single chip.
  1240.  
  1241.           82510
  1242.  
  1243.           I believe Intel is the only company that manufactures the 82510. 
  1244.           The 82510 is feature rich with several modes of operation.  Its
  1245.           default mode is to operate as a 16450.  The 82510 has a 4 byte
  1246.           FIFO for both transmit and receive data.  A 4 byte FIFO is
  1247.           sufficient to provide significant performance over a basic 16450.
  1248.  
  1249.           The 82510 is small in size.  Therefore, it is found in many lap
  1250.           tops.
  1251.  
  1252.           The 82510 is somewhat of a sleeper.  I believe it would be much
  1253.           more widely used if Intel had promoted it more.  However, given a
  1254.           choice between the 82510 and the 16550A, I would select the
  1255.           16550A.
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.                                                                          26
  1264.  
  1265.                        Appendix C, Multi-Port Serial I/0 Cards
  1266.  
  1267.           I have received many requests for information about multi-port
  1268.           serial I/O card.  I will describe the boards that I know about
  1269.           (or have heard about) here.  I will add to the list as I receive
  1270.           precise information from manufactures, users, or I develop it
  1271.           myself.
  1272.  
  1273.           STB 4COM  (ISA buss)
  1274.  
  1275.           I am very impressed with the STB 4COM card, they have almost got
  1276.           it.  Yes, its the same company that makes the VGA cards.  The
  1277.           4COM card uses a 16554 which is the equivalent of four 16550A. 
  1278.           Comm ports can use IRQs 2/9, 3, 4, 5, 10, 11, 12, and 15.  Any or
  1279.           all ports can share IRQs, and they have done this right.  I
  1280.           tested SIO with all four ports of the 4COM on IRQ12 and they
  1281.           worked correctly.  The user can select any of the following I/O
  1282.           port address for a comm port: 3F8, 2F8, 3E8, 2E8, 1A8, 1E8, 1F8,
  1283.           2A8.
  1284.  
  1285.           The 4COM card is priced at $110 and I ordered mine from Steve
  1286.           Winter of Prerapture Solutions.  Steve can be reached by
  1287.           telephone at 1-919-286-1502 for information and foreign callers. 
  1288.           In the US orders can be placed by calling 1-800-735-5266.  Their
  1289.           mailing address is:
  1290.                Prerapture Solutions
  1291.                1806 Albany St.
  1292.                Durham NC 27705-3135
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.                                                                          27
  1301.  
  1302.                                         INDEX
  1303.  
  1304.           16450 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  24
  1305.           16550 Non A . . . . . . . . . . . . . . . . . . . . . . . . .  24
  1306.           16550A  . . . . . . . . . . . . . . . . . . . . . . . . . . .  24
  1307.           16550AF . . . . . . . . . . . . . . . . . . . . . . . . . . .  24
  1308.           16550AFN  . . . . . . . . . . . . . . . . . . . . . . . . . .  24
  1309.           16550s Made by Western Digital  . . . . . . . . . . . . . . .  25
  1310.           16C451  . . . . . . . . . . . . . . . . . . . . . . . . . . .  24
  1311.           16C551  . . . . . . . . . . . . . . . . . . . . . . . . . . .  25
  1312.           16C552  . . . . . . . . . . . . . . . . . . . . . . . . . . .  25
  1313.           16C554  . . . . . . . . . . . . . . . . . . . . . . . . . . .  25
  1314.           8250  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23
  1315.           8250A . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23
  1316.           82510 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  25
  1317.           Addresses and IRQ for COM3 through COM8 on the PS/2 . . . . .  22
  1318.           Addresses and IRQs for COM1 and COM2  . . . . . . . . . . . .  22
  1319.           Allow_Access_COMn . . . . . . . . . . . . . . . . . . . . . . . 8
  1320.           Appendix A, Hardware Notes  . . . . . . . . . . . . . . . . .  22
  1321.           Appendix B, SIO Chips . . . . . . . . . . . . . . . . . . . .  23
  1322.           Appendix C, Multi-Port Serial I/0 Cards . . . . . . . . . . .  26
  1323.           AUTOMATIC IRQ ASSIGNMENT  . . . . . . . . . . . . . . . . . . . 7
  1324.           COMn already in use . . . . . . . . . . . . . . . . . . . . .  17
  1325.           CompuServe  . . . . . . . . . . . . . . . . . . . . . . . . . . i
  1326.           CONFIG.SYS  . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  1327.           Defacto standard for COM3 and COM4  . . . . . . . . . . . . .  22
  1328.           Differences between SIO/VSIO and COM/VCOM . . . . . . . . . .  15
  1329.           DOS SETTINGS  . . . . . . . . . . . . . . . . . . . . . . . . . 8
  1330.           Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
  1331.           Exclusive use . . . . . . . . . . . . . . . . . . . . . . . . . 8
  1332.           FAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
  1333.           FAX Modems
  1334.                Class 1 FAX modem  . . . . . . . . . . . . . . . . . . .  19
  1335.                Class 2 FAX modem  . . . . . . . . . . . . . . . . . . .  19
  1336.           Fax/PM  . . . . . . . . . . . . . . . . . . . . . . . . . . .  20
  1337.           FaxWorks  . . . . . . . . . . . . . . . . . . . . . . . . . .  17
  1338.           FIFO  . . . . . . . . . . . . . . . . . . . . . . . . . .  24, 25
  1339.           FMD.SYS . . . . . . . . . . . . . . . . . . . . . . . . . . .  17
  1340.           GETTING STARTED . . . . . . . . . . . . . . . . . . . . . . . . 3
  1341.           Installing SIO/VSIO . . . . . . . . . . . . . . . . . . . . . . 3
  1342.           IRQ . . . . . . . . . . . . . . . . . . . . . . . . . . . 4, 6, 7
  1343.           IRQ SHARING ON ISA  . . . . . . . . . . . . . . . . . . . . .  21
  1344.           National Semiconductor Corporation  . . . . . . . . . . . . .  23
  1345.           OS2AVEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
  1346.           PCMCIA  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
  1347.           PDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
  1348.           Physical Device Driver  . . . . . . . . . . . . . . . . . . . . 2
  1349.           PKUNZIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  1350.                Authentic files  . . . . . . . . . . . . . . . . . . . . . 3
  1351.           PROBLEMS AND SOLUTIONS  . . . . . . . . . . . . . . . . . . .  17
  1352.           Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  1353.           RTS/CTS handshaking . . . . . . . . . . . . . . . . . . . . . . 2
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.                                                                          28
  1362.  
  1363.           Seiko Smart Label Printer . . . . . . . . . . . . . .  11, 13, 14
  1364.           SIO Chips . . . . . . . . . . . . . . . . . . . . . . . . . .  23
  1365.           SIO Technical Reference Manual  . . . . . . . . . . . . . . . . i
  1366.           SIO_Mode_DTR  . . . . . . . . . . . . . . . . . . . . . . . . . 9
  1367.           SIO_Mode_FIFO_Load_Count  . . . . . . . . . . . . . . . . . .  13
  1368.           SIO_Mode_IDSR . . . . . . . . . . . . . . . . . . . . . . . .  10
  1369.           SIO_Mode_OCTS . . . . . . . . . . . . . . . . . . . . . . . .  11
  1370.           SIO_Mode_ODSR . . . . . . . . . . . . . . . . . . . . . . . .  11
  1371.           SIO_Mode_RTS  . . . . . . . . . . . . . . . . . . . . . . . .  11
  1372.           SIO_Mode_XON/XOFF . . . . . . . . . . . . . . . . . . . . . .  12
  1373.           SIO_Screen_Sync_Kludge  . . . . . . . . . . . . . . . . . . . . 9
  1374.           SIO_Share_Access_With_OS/2  . . . . . . . . . . . . . . . . . . 8
  1375.           STB 4COM  . . . . . . . . . . . . . . . . . . . . . . . . . .  26
  1376.           Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
  1377.           UART  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23
  1378.           VDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
  1379.           Virtual Device Driver . . . . . . . . . . . . . . . . . . . . . 2
  1380.           Virtualize_16550A_For_COM . . . . . . . . . . . . . . . . . . . 8
  1381.           Virtualize_COM_Ports  . . . . . . . . . . . . . . . . . . . . . 8
  1382.           WHAT IS SIO . . . . . . . . . . . . . . . . . . . . . . . . . . 1
  1383.           WHAT IS VSIO  . . . . . . . . . . . . . . . . . . . . . . . . . 2
  1384.           WinFax  . . . . . . . . . . . . . . . . . . . . . . . . .  17, 19
  1385.