home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / X00153A.ARJ / X00USER.DOC < prev    next >
Encoding:
Text File  |  1993-12-12  |  61.0 KB  |  1,424 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.                   X.00 A Low Level Serial I/O Communications Driver
  29.                         for MS DOS and like Operating Systems.
  30.  
  31.                         Copyright (c) 1993 by Raymond L. Gwinn
  32.                                  12469 Cavalier Drive
  33.                               Woodbridge, Virginia 22192
  34.                                  All Rights Reserved
  35.  
  36.                                   December 12, 1993
  37.  
  38.  
  39.                      Fidonet address 1:265/104 (Routed mail only)
  40.                                  Compuserve 72570,157
  41.                           Internet 72570.157@Compuserve.com
  42.                                   Data 703-494-0098
  43.                                    FAX 703-494-0595
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.                                                                           i
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                                      INTRODUCTION
  69.  
  70.           Previously,  the documentation  for X00  was little  more  than a
  71.           collection of notes.  The notes were added  to as the development
  72.           process continued and enhancements were made.  I honestly did not
  73.           suspect  that X00  would become as  widely used  as it  is.  This
  74.           manual is an attempt at some decent documentation for X00.
  75.  
  76.           But who  do I document  for?  The user  that is setting  up a BBS
  77.           just wants to get X00 installed  and to move on to more important
  78.           things.  The user that is having problems needs information about
  79.           serial  I/O communications  in general  and the  PC specifically.
  80.           The application developer (programmer) needs detailed information
  81.           about each individual function and the information generated.
  82.  
  83.           This manual is intended for the X00 user.  A separate Application
  84.           Programmers manual is being written.
  85.  
  86.           This manual and the software distributed with it is provided with
  87.           no guarantees.  Use at your own risk.
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.                                                                          ii
  96.  
  97.                                   TABLE OF CONTENTS
  98.  
  99.  
  100.           WHAT IS X00 . . . . . . . . . . . . . . . . . . . . . . . . .   1
  101.  
  102.           Warranty  . . . . . . . . . . . . . . . . . . . . . . . . . .   1
  103.  
  104.           Licensing Information . . . . . . . . . . . . . . . . . . . .   2
  105.                Non-Commercial License . . . . . . . . . . . . . . . . .   2
  106.                Commercial License . . . . . . . . . . . . . . . . . . .   2
  107.                Commercial license fasttrack . . . . . . . . . . . . . .   4
  108.  
  109.           GETTING STARTED . . . . . . . . . . . . . . . . . . . . . . .   5
  110.                Installing X00 . . . . . . . . . . . . . . . . . . . . .   5
  111.                Quick Start  . . . . . . . . . . . . . . . . . . . . . .   5
  112.  
  113.           OVERVIEW OF X00 USAGE . . . . . . . . . . . . . . . . . . . .   6
  114.                General Information  . . . . . . . . . . . . . . . . . .   6
  115.                     X00 loaded as a DOS Device Driver . . . . . . . . .   6
  116.                     X00 loaded as a TSR . . . . . . . . . . . . . . . .   6
  117.                     COMn and PORTn  . . . . . . . . . . . . . . . . . .   6
  118.  
  119.           COMMAND LINE OPTIONS  . . . . . . . . . . . . . . . . . . . .   7
  120.                Specifying number of ports . . . . . . . . . . . . . . .   7
  121.                B option, Locking Baud, Data, Parity and Stop bits . . .   7
  122.                Valid locked baud rates  . . . . . . . . . . . . . . . .   8
  123.                Eliminate  . . . . . . . . . . . . . . . . . . . . . . .   8
  124.                Defer  . . . . . . . . . . . . . . . . . . . . . . . . .   8
  125.                DV . . . . . . . . . . . . . . . . . . . . . . . . . . .   9
  126.                FIFO . . . . . . . . . . . . . . . . . . . . . . . . . .   9
  127.                NOFIFO . . . . . . . . . . . . . . . . . . . . . . . .    10
  128.                NOPOST . . . . . . . . . . . . . . . . . . . . . . . .    10
  129.                R, Set Receive Buffer Size . . . . . . . . . . . . . .    10
  130.                T, Set Transmit Buffer Size  . . . . . . . . . . . . .    11
  131.                VP or Master Interrupt Enable  . . . . . . . . . . . .    11
  132.                Mapping port assignments . . . . . . . . . . . . . . .    11
  133.                Un-installing X00  . . . . . . . . . . . . . . . . . .    12
  134.  
  135.           Multi-Tasking . . . . . . . . . . . . . . . . . . . . . . .    13
  136.  
  137.           THE BIOS INT 14h EMULATOR . . . . . . . . . . . . . . . . .    15
  138.  
  139.           IRQ SHARING . . . . . . . . . . . . . . . . . . . . . . . .    16
  140.  
  141.           Appendix A, Hardware Port and IRQ Assignments . . . . . . .    17
  142.                Addresses and IRQs for COM1 and COM2 . . . . . . . . .    17
  143.                Defacto standard for COM3 and COM4 . . . . . . . . . .    17
  144.                Addresses and IRQ for COM3 through COM8 on the PS/2  .    17
  145.  
  146.           Appendix B, SIO Chips . . . . . . . . . . . . . . . . . . .    18
  147.                8250 . . . . . . . . . . . . . . . . . . . . . . . . .    18
  148.                8250A  . . . . . . . . . . . . . . . . . . . . . . . .    18
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.                                                                         iii
  157.  
  158.                16450  . . . . . . . . . . . . . . . . . . . . . . . .    19
  159.                16C451 . . . . . . . . . . . . . . . . . . . . . . . .    19
  160.                16550 Non A  . . . . . . . . . . . . . . . . . . . . .    19
  161.                16550A . . . . . . . . . . . . . . . . . . . . . . . .    19
  162.                16550AF  . . . . . . . . . . . . . . . . . . . . . . .    19
  163.                16550AFN . . . . . . . . . . . . . . . . . . . . . . .    19
  164.                16550s Made by Western Digital . . . . . . . . . . . .    20
  165.                16C551 . . . . . . . . . . . . . . . . . . . . . . . .    20
  166.                16C552 . . . . . . . . . . . . . . . . . . . . . . . .    20
  167.                82510  . . . . . . . . . . . . . . . . . . . . . . . .    20
  168.  
  169.           Appendix C, Multi-Port Serial I/0 Cards . . . . . . . . . .    21
  170.                STB 4COM . . . . . . . . . . . . . . . . . . . . . . .    21
  171.                Connect-Com 4  . . . . . . . . . . . . . . . . . . . .    21
  172.                4 and 8 Port Boards from Decision-Computer . . . . . .    21
  173.                Stargate Plus 8 board from Software Link . . . . . . .    22
  174.  
  175.           INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . .    23
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.                                                                           1
  184.  
  185.                                      WHAT IS X00
  186.  
  187.           X00 is  a Serial Input/Output  (SIO) communications  driver.   It
  188.           provides  an interface  between  an application  program and  the
  189.           serial communications hardware.
  190.  
  191.           X00 was  originally designed as  a FOSSIL  driver.  FOSSIL  is an
  192.           acronym containing the first  character of several communications
  193.           programs.   The FOSSIL specification is basically an extension of
  194.           the PC's BIOS services for serial communications.
  195.  
  196.           Except as noted in  the Programmers Manual, X00 meets  the FOSSIL
  197.           level 5  specification.   X00 provides additional  functions that
  198.           are not contained in the FOSSIL level 5 specification.
  199.  
  200.           X00 only works with 8250 (TYPE) serial I/O devices.  Such devices
  201.           include the 8250A,  16450, 16550, 16550A and  the 82510.   If you
  202.           have a PC that  is an IBM or  near compatible which has  a serial
  203.           communication  port, it is likely  that it contains  one of these
  204.           devices.  XU, a  utility distributed with X00, will  identify the
  205.           existence of compatible SIO devices.
  206.  
  207.           Like  other  Device Drivers,  X00  will do  very  little standing
  208.           alone.  There must be an application(s) program to use X00 before
  209.           you will gain benefit.
  210.  
  211.           Since  the introduction  of the  FOSSILs, a  great number  of new
  212.           communications  programs have  come into  existence.   I like  to
  213.           think  that the FOSSILs are  largely responsible for  this.  Many
  214.           programs that contain their own communications drivers have added
  215.           FOSSIL support.  One notable example is RBBS.
  216.  
  217.           Many  programs  written  to  use  BIOS's   serial  communications
  218.           services will also work  with X00.  This gives those programs the
  219.           benefits of buffered interrupt driven I/O.
  220.  
  221.           Warranty
  222.  
  223.           There is none.  Use at your own risk.
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.                                                                           2
  232.  
  233.  
  234.                                 Licensing Information
  235.  
  236.           Non-Commercial License:
  237.  
  238.           A  non-commercial license  for  use of  X00  is included  in  the
  239.           distribution file called LICENSE.TXT.
  240.  
  241.           Commercial License:
  242.  
  243.           Commercial Licenses will  be liberally  granted in  return for  a
  244.           donation (usually tax deductible).   Each commercial license will
  245.           be individually granted.  That is, there is no single policy that
  246.           can be stated  here.  Some  generally uniform commercial  license
  247.           policies follow (see next page for fasttrack licensing).
  248.  
  249.           1 - X00 is usually licensed by product.
  250.  
  251.           2 - All commercial  licensees of X00 will receive a  special copy
  252.           of X00 that will identify, at boot time, the commercial product.
  253.  
  254.           3 -  I may require a fully licensed, fully featured, copy of your
  255.           product for personal use on multiple computers.
  256.  
  257.  
  258.           4 - The required  contribution, which is never to  me personally,
  259.           will usually be a one time contribution of $100.00.
  260.  
  261.           5 - Proof of  licensing belongs to you.  That is,  I am not going
  262.           to be responsible for keeping records.  I suggest that you keep a
  263.           copy  of the donation check so  that you can send me  a copy if a
  264.           question  arises.    Otherwise  you  may  have  to  make  another
  265.           contribution.
  266.  
  267.           6 -  You may only  distribute versions  of X00 that  contain your
  268.           product name in the X00 banner (at boot time).
  269.  
  270.           7  - If you wish to have  the latest version of X00 automatically
  271.           sent to you with your product name in the X00 banner, then do the
  272.           following:   Send me a check for $10.00, in advance, along with a
  273.           pre-addressed mailing label.  If you require a 3.5 inch diskette,
  274.           then write "3.5 inch" on the pre-addressed mailing label and send
  275.           $15.00 (instead of  $10.00).   For updates, the  check should  be
  276.           made out to  Raymond L. Gwinn.   The checks  will be cashed  when
  277.           received.  Individuals that  wish to receive a mailed copy of the
  278.           latest X00  version may also use  this procedure.  Once  you have
  279.           received  an update, you  will need to resend  the update fee and
  280.           pre-addressed mailing  label if you  desire to  receive the  next
  281.           update.
  282.  
  283.           8  -   Your  contribution  check  should   state  "X00  Licensing
  284.           contribution" in the Memo or comment field.
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.                                                                           3
  293.  
  294.           If  you  write me  about a  commercial  license (see  next page),
  295.           please include a voice phone number.  Your chances of receiving a
  296.           response are  better  if  the  voice phone  number  is  included.
  297.           Correspondence should be sent to:
  298.  
  299.                     Raymond L. Gwinn
  300.                     12469 Cavalier Drive
  301.                     Woodbridge, Va. 22192
  302.  
  303.           Prior to making the special version of X00 available, I may  wait
  304.           for the  check to clear the bank.  If  the check bounces, I will,
  305.           most  likely, not give any further  consideration to a commercial
  306.           license.
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.                                                                           4
  315.  
  316.  
  317.           Commercial license fasttrack:
  318.  
  319.           Remember,  in general, a  commercial license is  required only if
  320.           you wish to distribute X00 with another software product.
  321.  
  322.           1  - In  a note  or letter,  give the  name of  the  PRODUCT (not
  323.           company)  that  X00 will  be distributed  with.   If you  wish to
  324.           distribute X00  with multiple products, you will have to purchase
  325.           an equal number of licenses.
  326.  
  327.           2 - Make a check out to "Young Life" for $100.00 and send it to:
  328.  
  329.                     Raymond L. Gwinn
  330.                     12469 Cavalier Drive
  331.                     Woodbridge, Va. 22192
  332.  
  333.  
  334.           Consultants:  The  licensing fee to distribute  X00 with software
  335.           that you have written for  a client is $1.00 per copy.  The first
  336.           100 copies must be paid for in advance.  That is, send a check as
  337.           described in 2 above.
  338.  
  339.           Shareware: See 1 and 2 above.
  340.  
  341.           Remember,  I do not  make any  money from  X00.   I get  too many
  342.           messages  and letters  for me  to respond  to.   If you  must ask
  343.           questions (before you  send a  check) then you  are probably  not
  344.           going to get an answer or license.
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.                                                                           5
  353.  
  354.  
  355.                                    GETTING STARTED
  356.  
  357.           Installing X00
  358.  
  359.           X00  is distributed  as a  ZIP file.   To extract  the individual
  360.           files  from the distribution file you need the program PKUNZIP or
  361.           an  equivalent.   PKUNZIP  is  a  product of  PKWARE  and  can be
  362.           downloaded from  almost any  bulletin board  system  (BBS).   You
  363.           probably already have PKUNZIP and know how to use it, otherwise I
  364.           doubt that  you would be reading  this.  When PKUNZIP  is used to
  365.           extract the various files, -AV should appear after each file name
  366.           as it is extracted.  In addition, the message:
  367.  
  368.                Authentic files Verified!
  369.  
  370.           should appear after the extraction process.  If this message does
  371.           not appear, or  appears with a name other than  Raymond L. Gwinn,
  372.           the file is not an original X00 distribution file.
  373.  
  374.           The  only file  that the  basic user  actually needs  is X00.SYS.
  375.           Copy  this file to a convenient directory or subdirectory on your
  376.           system.   I suggest that all users  also install XU.EXE also.  XU
  377.           can provide important  information about X00 that  may be helpful
  378.           when problems occur.
  379.  
  380.  
  381.           Quick Start
  382.  
  383.           Copy X00.SYS and XU.EXE to the root  directory of your boot drive
  384.           or diskette.
  385.  
  386.           If you  are going  to use  standard communications  ports, either
  387.           COM1 or COM2 on  a PC or AT, or COM1 through COM8 on a PS/2, then
  388.           add the following line to your CONFIG.SYS file:
  389.  
  390.                DEVICE=X00.SYS E
  391.  
  392.           If  you wish  to have  more than  one communications  port active
  393.           simultaneously,  then  modify the  command  line  to include  the
  394.           number of simultaneously active  ports you wish to support.   For
  395.           example,  if you are using DESQview and you  wish to run a BBS in
  396.           two  different  windows,  then  add the  following  line  to your
  397.           CONFIG.SYS file:
  398.  
  399.                DEVICE=X00.SYS E 2
  400.  
  401.           It  should be  noted that the  above command  tells X00  how many
  402.           ports that are to  be used simultaneously, not which  ports.  The
  403.           application program may use ANY 2 serial ports in any order.
  404.  
  405.           If your setup is more complex, you must read on.
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.                                                                           6
  414.  
  415.                                 OVERVIEW OF X00 USAGE
  416.  
  417.                                  General Information
  418.  
  419.           Things  can get  a little confusing  here.   At the  time of this
  420.           writing,  X00 is almost (if not completely) unique in its ability
  421.           to function as a DOS device driver or as a Terminate (or Torment)
  422.           and Stay Resident program (TSR).
  423.  
  424.           X00 loaded as a DOS Device Driver
  425.  
  426.           If X00 is to be used as a DOS device driver, it must be installed
  427.           using  the CONFIG.SYS  file.   For a  precise description  of the
  428.           CONFIG.SYS file  and  its  function, please  refer  to  your  DOS
  429.           manual.  Basically,  you use a text  editor to add a  line to the
  430.           CONFIG.SYS  file.    The  line  that  you add  is  DEVICE=X00.SYS
  431.           followed by optional parameters.  The optional parameters will be
  432.           described later.  If X00.SYS is  not in the current directory you
  433.           will need to provide a DOS path  to the directory containing X00.
  434.           For  example, if X00.SYS is in  a subdirectory called COMM on the
  435.           hard  disk drive  C, the  line  in the  CONFIG.SYS file  would be
  436.           DEVICE=C:\COMM\X00.SYS.
  437.  
  438.           X00 loaded as a TSR
  439.  
  440.           If  X00 is  to be  used as  a Terminate  and Stay  Resident (TSR)
  441.           program,  then you must rename  or copy X00.SYS  to X00.EXE.  The
  442.           EXE  version of  X00 must  be in  the current  directory or  in a
  443.           directory  in the  DOS  path when  it is  executed.   X00.EXE  is
  444.           executed like  any other DOS program.   That is, you  type X00 at
  445.           the  DOS prompt followed by any optional parameters.  In reality,
  446.           you will probably be using a batch file to execute X00.
  447.  
  448.  
  449.           COMn and PORTn
  450.  
  451.           X00 allows communications ports  to be swapped around.   That is,
  452.           the serial port that DOS calls COM1 can be mapped (reassigned) to
  453.           any X00 port.   Therefore, when a  reference in this  document is
  454.           made about  PORTn, it  refers to  the serial  I/O device  that is
  455.           mapped to  that X00  port.   When  a reference  is  made to  COM1
  456.           through  COM8,  it  refers to  the  serial  I/O  device that  DOS
  457.           knows/uses as COMn.   Also worth noting  is that DOS numbers  the
  458.           serial  I/0 devices  starting at  1 (COM1  through COM8)  and X00
  459.           numbers them starting at 0 (PORT0 through PORT7).
  460.  
  461.           X00's  default is to assign  PORT0 through PORT7  to COM1 through
  462.           COM8.
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.                                                                           7
  471.  
  472.                                  COMMAND LINE OPTIONS
  473.  
  474.           The  command line options are  included in the  command line that
  475.           invokes X00.  In several  cases only the first 1 or  2 characters
  476.           of the option need be entered.  In other cases, the entire option
  477.           name  must  be  spelled out.    Unless  otherwise  stated in  the
  478.           following descriptions,  the entire  option name must  be spelled
  479.           out.  The parameters are given one after another on the same line
  480.           and in any order.  The length of the command line is limited only
  481.           by DOS.
  482.  
  483.           Specifying number of ports
  484.  
  485.           If a  single  decimal number  is  in  the X00  command  line,  it
  486.           specifies  the number  of  ports that  X00  is to  simultaneously
  487.           support.   The default is  one port.   The maximum  value of  the
  488.           number of ports is 4 for non PS/2 systems and 8 for PS/2 systems.
  489.           If you  desire to use more than 4 ports  on a non PS/2, each port
  490.           address must  be specified (see mapping  port assignments below).
  491.           Input  and output  buffers are  allocated for  each of  the ports
  492.           specified.  Examples of usage are:
  493.  
  494.                When X00 is loaded as a Device Driver
  495.                     DEVICE=X00.SYS 3
  496.                     DEVICE=X00.SYS 8
  497.  
  498.                When X00 is loaded as a TSR
  499.                     X00 3
  500.                     X00 8
  501.  
  502.           B option, Locking Baud, Data, Parity and Stop bits
  503.  
  504.           Normally, the  application program sets  the baud rate  and other
  505.           parameters  controlling the  serial  I/O hardware.   Some  modems
  506.           provide  better  performance  when  the  communications  from the
  507.           computer to modem is constant (Locked).  That is, the computer to
  508.           modem speed is not the same as the modem to modem speed.  If this
  509.           option  is   used,  the  modem  must   support  RTS/CTS  hardware
  510.           handshaking and the feature must be enabled on the modem.
  511.  
  512.           The B command  line option  requires 2 parameters  and allows  an
  513.           optional  third parameter.  The  option is specified  in the form
  514.           B,PORTn,BAUD  RATE,PARITY.  You  will most  likely never  want to
  515.           lock the parity, data and stop bits.  Examples of usage are:
  516.  
  517.                When X00 is loaded as a Device Driver
  518.                     DEVICE=X00.SYS B,0,2400 B,1,19200 or
  519.                     DEVICE=X00.SYS B,1,19200,8N1
  520.  
  521.                When X00 is loaded as a TSR
  522.                     X00 B,0,2400 B,0,19200 or
  523.                     X00 B,1,19200,8N1
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.                                                                           8
  532.  
  533.  
  534.           Valid locked baud rates are: 75, 110, 135.5, 150, 300, 600, 1200,
  535.           1800, 2000,  2400, 3600, 4800,  7200, 9600, 19200,  28800, 38400,
  536.           57600, and 115200.
  537.  
  538.           I can  think of few conditions  where it is necessary  to use the
  539.           optional  third  parameter of  the B  command  line option.   The
  540.           optional  third parameter is made up of 3 characters that specify
  541.           the  locked setting for data  bits per character,  parity bit and
  542.           stop bit(s) in  that order.  The optional  third parameter can be
  543.           made up of  any combination  of the following  first, second  and
  544.           third characters.
  545.  
  546.                     First     Second         Third
  547.                     5         N = None       1
  548.                     6         E = Even       2
  549.                     7         O = Odd
  550.                     8         M = Mark (always 1)
  551.                               S = Space (always 0)
  552.  
  553.  
  554.           The first  character  specifies  the  number  of  data  bits  per
  555.           character,  the second  character specifies  the handling  of the
  556.           parity bit and the  third character specifies the number  of stop
  557.           bits.   When 5 data bits and  2 stop bits (eg 5N2) are specified,
  558.           the  number of stop bits will actually  be 1.5.  As stated above,
  559.           locking of the parity etc, is not advisable.
  560.  
  561.           Anytime an application program attempts to program the baud rate,
  562.           parity etc, through X00, the locked values will be substituted.
  563.  
  564.           Eliminate
  565.  
  566.           Normally,  when X00 is loaded a copyright notice is displayed for
  567.           5 seconds.  Using the eliminate  option will disable the 5 second
  568.           display  of the copyright  notice.  Only the  first letter (E) is
  569.           required to invoke this option.  Examples of usage are:
  570.  
  571.                When X00 is loaded as a Device Driver:
  572.                     DEVICE=X00.SYS ELIMINATE or
  573.                     DEVICE=X00.SYS E
  574.  
  575.                When X00 is loaded as a TSR
  576.                     X00 ELIMINATE or
  577.                     X00 E
  578.  
  579.           Defer
  580.  
  581.           The Defer option  creates problems  on most systems.   The  Defer
  582.           option should be avoided by most users.  X00 must  use several of
  583.           the  80x86 interrupts.  Normally,  X00 will hook  itself into the
  584.           80x86 interrupts when it is executed.  The Defer option tells X00
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.                                                                           9
  593.  
  594.           to  postpone hooking  into some  interrupts until  an XU  CAPTURE
  595.           command  is  executed.    If  the defer  option  is  used  and  a
  596.           subsequent  XU  CAPTURE  is  not  issued,  X00  may not  function
  597.           correctly.  Additionally,  the XU CAPTURE must be  executed prior
  598.           to  executing  a multitasker  like DESQview.    Only the  first 2
  599.           letters (DE) need  to used to specify  this option.   Examples of
  600.           usage are:
  601.  
  602.                When X00 is loaded as a Device Driver
  603.                     DEVICE=X00.SYS DEFER or
  604.                     DEVICE=X00.SYS DE
  605.  
  606.                When X00 is loaded as a TSR
  607.                     X00 DEFER or
  608.                     X00 DE
  609.  
  610.           The  default for  Defer is  off.   That is,  X00 will  by default
  611.           immediately hook into all necessary 80x86 interrupt vectors.
  612.  
  613.           DV
  614.  
  615.           The  DV command  line option is  only of interest  to those using
  616.           DESQview.   The  default for  this option  is off.   When  on (DV
  617.           specified  in the  command line),  X00 will  make DESQview  Pause
  618.           calls when it seems that  the application program is idle.   This
  619.           may make  time available for other  tasks to use.   Refer to your
  620.           DESQview manuals for details about the DESQview pause command.
  621.  
  622.           If you are  using DESQview, try  the DV option.   If it does  not
  623.           adversely affect your system, leave it enabled (on).  Examples of
  624.           usage are:
  625.  
  626.                When X00 is loaded as a Device Driver
  627.                     DEVICE=X00.SYS DV
  628.  
  629.                When X00 is loaded as a TSR
  630.                     X00 DV
  631.  
  632.           FIFO
  633.  
  634.           Only the first  letter of the command  (F) is required to  invoke
  635.           this option.  Some of the serial I/O hardware  devices have First
  636.           In First Out (FIFO) buffers.  This command line option is used to
  637.           specify the  number of characters that X00 can load into the FIFO
  638.           during  a single  transmit  interrupt.   In  general this  number
  639.           should be set  the size of the  FIFO minus 1.   For example,  the
  640.           popular 16550A has a 16  byte FIFO on both transmit and  received
  641.           data.  Thus, if this option is used, I suggest the value of 15 be
  642.           used for the 16550A.  Examples of usage are:
  643.  
  644.                When X00 is loaded as a Device Driver
  645.                     DEVICE=X00.SYS FIFO=10
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.                                                                          10
  654.  
  655.                     DEVICE=X00.SYS F=15
  656.  
  657.                When X00 is loaded as a TSR
  658.                     X00 FIFO=15
  659.                     X00 F=8
  660.  
  661.           The size of the receive FIFO is always set to the maximum by X00.
  662.  
  663.           NOFIFO
  664.  
  665.           This command line option is used to completely disable the use of
  666.           hardware FIFOs.  Examples of usage are:
  667.  
  668.                When X00 is loaded as a Device Driver
  669.                     DEVICE=X00.SYS NOFIFO
  670.  
  671.                When X00 is loaded as a TSR
  672.                     X00 NOFIFO
  673.  
  674.  
  675.           NOPOST
  676.  
  677.           Normally,  when X00 is executed,  it will alter  the COM1 through
  678.           COM4 hardware port addresses  in BIOS RAM to match  the addresses
  679.           being used by X00.  By doing so, many DOOR type programs that use
  680.           INT  14h  for  their serial  I/O  will  work  correctly with  X00
  681.           installed.   This option (NOPOST) instructs X00 to leave the BIOS
  682.           RAM unchanged.  Examples of usage are:
  683.  
  684.                When X00 is loaded as a Device Driver
  685.                     DEVICE=X00.SYS NOPOST
  686.  
  687.                When X00 is loaded as a TSR
  688.                     X00 NOPOST
  689.  
  690.  
  691.           R, Set Receive Buffer Size
  692.  
  693.           The R command line option allows the user to  set the size of the
  694.           receive buffer.   The default size  of the receive buffer  is 512
  695.           bytes.   The  size of  the buffer must  be a  power of  2.  Valid
  696.           buffer sizes are:  256, 512,  1024, 2048, 4096,  8192, 16384  and
  697.           32768.  If an  invalid buffer size  is specified, the next  lower
  698.           correct buffer size is used.
  699.  
  700.           Many users needlessly set  the size of the receive  (or transmit)
  701.           buffer too large.  Examples of usage are:
  702.  
  703.                When X00 is loaded as a Device Driver
  704.                     DEVICE=X00.SYS R=1024
  705.                     DEVICE=X00.SYS R=2048
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.                                                                          11
  714.  
  715.                When X00 is loaded as a TSR
  716.                     X00 R=1024
  717.                     X00 R=2048
  718.  
  719.  
  720.           T, Set Transmit Buffer Size
  721.  
  722.           This option is identical to the R command line option (see above)
  723.           except it sets the size of the transmit buffer.
  724.  
  725.  
  726.           VP or Master Interrupt Enable
  727.  
  728.           VP stands for Vector  Port which is not a very good  name for the
  729.           option.  Some multiple port serial I/O cards default to  only two
  730.           ports enabled when power is turned on.  A specified value must be
  731.           written to an  I/O port  to enable the  additional serial  ports.
  732.           Simply stated the VP command line  option says to write the given
  733.           value to the given port.  Examples of usage are:
  734.  
  735.                When X00 is loaded as a Device Driver
  736.                     DEVICE=X00.SYS VP=03FF,80
  737.  
  738.                When X00 is loaded as a TSR
  739.                     X00 VP=3FF,80
  740.  
  741.           Both of  the above examples  in effect says,  write the value  80
  742.           (hex) the I/O port at 3FF.
  743.  
  744.  
  745.           Mapping port assignments
  746.  
  747.           This  is the most complicated command line option for many users.
  748.           By default,  X00 maps up to  8 serial I/O ports  (PORTS 0 through
  749.           7).  X00 will (attempt to) determine the hardware architecture on
  750.           which  it is  being executed.   If  a PS/2  is detected  then the
  751.           default Serial  I/O port addresses will be  set to match the PS/2
  752.           (see Appendix  .  If X00  detects that the  system is not  a PS/2
  753.           type system, then the default port addresses are as follows:  1 -
  754.           Standard  addresses for COM1 and  COM2, 2 -  The defacto standard
  755.           for COM3 and  COM4, and nothing  for COM5  through COM8 (ports  4
  756.           through 7).
  757.  
  758.           Port mapping is necessary if your hardware configuration does not
  759.           match the PS/2 or  defacto standard for non  PS/2 systems.   COM1
  760.           and COM2  are the same  for the PC,  XT, AT  and PS/2.   However,
  761.           hardware  specifications for COM3  through COM8  became available
  762.           only when IBM released the PS/2.
  763.  
  764.           Many multiple  serial  port  cards are  available  for  pre  PS/2
  765.           systems that use a defacto standard.  The most common assignments
  766.           that I have seen for COM3 and COM4 are:  COM3 at port address 3E8
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.                                                                          12
  775.  
  776.           using IRQ 3.   COM4 at port  address 2E8 using IRQ 4.   Above the
  777.           fourth port, I  have not observed  anything resembling a  defacto
  778.           standard.
  779.  
  780.           X00  will support almost any  serial I/O card.   However, in most
  781.           cases,  port mapping  is required  for anything  beyond COM1  and
  782.           COM2.
  783.  
  784.           Mapping port assignments uses two basic forms.  They are:
  785.                PORTn=COMn,IRQn
  786.                PORTn=HEXADDRESS,IRQn
  787.  
  788.           Where:
  789.                PORTn is the X00 port number and must be 0 through 7.
  790.  
  791.                COMn is a standard DOS port and must be COM1 through COM8.
  792.  
  793.                IRQn is the IRQ use by the serial port and must be IRQ0
  794.                through IRQ15.
  795.  
  796.                HEXADDRESS is a hexadecimal I/O port address that addresses
  797.                the serial I/O device.
  798.  
  799.           In both basic forms, the IRQn is optional.  X00 defaults all IRQn
  800.           to  IRQ3 except COM1  which defaults to IRQ4.   Examples of usage
  801.           are:
  802.  
  803.                When X00 is loaded as a Device Driver
  804.                     DEVICE=X00.SYS 0=COM4
  805.                     DEVICE=X00.SYS 0=COM4,IRQ5
  806.                     DEVICE=X00.SYS 0=2E8,IRQ3
  807.                     DEVICE=X00.SYS 2=2E8
  808.  
  809.                When X00 is loaded as a TSR
  810.                     X00 0=COM4
  811.                     X00 0=COM4,IRQ5
  812.                     X00 0=2E8,IRQ3
  813.                     X00 2=2E8
  814.  
  815.  
  816.           Un-installing X00
  817.  
  818.           When X00  is installed as a TSR, it can be un-installed by simply
  819.           executing X00 with no command line parameters.  If you wish to be
  820.           sure that you do not accidently un-install X00, always execute it
  821.           with a harmless parameter like X00 E.
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.                                                                          13
  830.  
  831.                                     Multi-Tasking
  832.  
  833.           By  far, DESQview seems to be the multi-tasking software that X00
  834.           is  most  often used  with.    At the  time  of  this writing,  I
  835.           personally use DESQview to run a multi line BBS.
  836.  
  837.           I believe it is best to load X00 before the multi-tasking program
  838.           and  to load  it as a  device driver.   This  enables all windows
  839.           (tasks)  access to X00.   Loading X00 first  also allows multiple
  840.           windows to share the same IRQ.
  841.  
  842.           If  you have loaded X00 prior to  DESQview, you need to configure
  843.           the window  for no  communications.   That is,  answer NO  to the
  844.           configuration   questions,   Uses  Serial   Ports   and  Optimize
  845.           communications.     I  also  suggest  that   you  enable  printer
  846.           management within the window.  Enabling printer management allows
  847.           a  remote drop  to DOS  to work  on many  systems.   The Optimize
  848.           communications  option and  the  Printer  management  option  are
  849.           established with  the DESQview  SETUP program.   The  Uses serial
  850.           ports  (Y,N,1,2) option is in  the "Change a  Program" portion of
  851.           window configuration.
  852.  
  853.           In  several  cases  I  have  gained  a  significant  increase  in
  854.           performance by turning X00 on prior  to executing a program.  Two
  855.           notable cases are GATEWAY and DOORWAY.  I used XU to turn X00 on.
  856.           For example, XU PORT:n:ON just before invoking DOORWAY or GATEWAY
  857.           produced significantly better input and output from the programs.
  858.           Depending  on your environment, an  XU PORT:n:OFF may  have to be
  859.           issued after  the program terminates.   Also note that the  n for
  860.           PORTn is 1 less than the n in GATEn and COMn.
  861.  
  862.           The communications windows seem  to work better if the  ticks for
  863.           the  foreground and  background  are set  relatively  low.   Most
  864.           people that  I have talked to use 2 ticks for both foreground and
  865.           background.  Only experimentation will determine the best setting
  866.           for your system.
  867.  
  868.           If you do  not wish to share  an IRQ, you can  load X00 as a  TSR
  869.           inside  a DESQview window.  When loaded inside a DESQview window,
  870.           X00 is  only available to programs in that window.  X00 should be
  871.           configured  to  support   only  1  serial  port  and  you  should
  872.           specifically name the port that X00 will use in the command line.
  873.           For example use X00 0=COM1,  instead of X00 1 or just  plain X00.
  874.           Identifying the specific  serial port  to be used  in the  window
  875.           eliminates the chance that X00 will interfere with another active
  876.           window.
  877.  
  878.           I strongly recommend that you use the 16550A (or later)  SIO chip
  879.           if you are using a multi-tasking system of any kind.
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.                                                                          14
  888.  
  889.  
  890.           Most programs written to use BIOS INT 14h will work directly with
  891.           X00's enhanced services.  You should try turning  X00 on using an
  892.           XU  PORT:n:ON  command  just  prior  to  executing  the  program.
  893.           Programs  that  do not  have their  own  interrupt I/O  will most
  894.           likely give better performance.
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.                                                                          15
  903.  
  904.                               THE BIOS INT 14h EMULATOR
  905.  
  906.           X00 is a  BIOS INT 14h enhancement.   So what  is the need for  a
  907.           BIOS  emulator also?   Well, when X00  is turned off  for a given
  908.           port,  it  does  not process  the  INT  14h  functions using  the
  909.           enhanced code.   Prior  to the introduction  of the BIOS  INT 14h
  910.           emulator, X00 simply passed calls to inactive serial ports to the
  911.           BIOS INT 14h.
  912.  
  913.           Serial   communications  has   changed  considerably   since  the
  914.           definition of  the original BIOS for  the PC.   However, the BIOS
  915.           services for  serial  communications have  changed  very  little.
  916.           Many  program are still written  to use the  original BIOS serial
  917.           communications  services.  Many older  programs that use the BIOS
  918.           communications services are still widely used.
  919.  
  920.           Problems occur  when advanced  high  speed modems  are used  with
  921.           these programs.  Many of the  programs are totally unaware of the
  922.           concept of RTS/CTS handshaking that most of the high speed modems
  923.           use.  The programs cannot be aware that the user  may have mapped
  924.           the port  addresses.   BIOS  for  all systems  (that  I know  of)
  925.           support only  4 serial  communications ports except  PS/2 systems
  926.           which support 8.
  927.  
  928.           I added  the BIOS emulator to X00 to support many of the programs
  929.           that  are not (or cannot  be) aware of  the active communications
  930.           environment.
  931.  
  932.           By default,  X00's BIOS INT 14h  emulator is enabled.   It can be
  933.           disabled by adding USEBIOS to the command line that invokes X00.
  934.  
  935.           When the emulator is enabled, port mapping, baud rate locking and
  936.           hardware handshaking for the serial  port(s) are maintained and 8
  937.           serial ports are supported.   If the serial  I/O chip is  FIFOed,
  938.           the  emulator allows the FIFOs to be  used.  This means that many
  939.           programs  written to use  BIOS can be  used in  the more advanced
  940.           communications environments.
  941.  
  942.           The BIOS  emulator can  be activated and  deactivated dynamically
  943.           using XU.
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.                                                                          16
  952.  
  953.                                      IRQ SHARING
  954.  
  955.           Sharing the same IRQ for multiple communications ports is not for
  956.           the weak of heart (or mind).
  957.  
  958.           Most popular  multitasking software  seems to do  everything they
  959.           can to  prevent the sharing of  a single IRQ between  two or more
  960.           tasks (windows).   This big brother attitude  of the multitaskers
  961.           is cause of most of the  problems in sharing a single IRQ between
  962.           several  serial  communications  ports.    Several communications
  963.           ports  sharing a single IRQ is not  too difficult to manage.  The
  964.           problem is the multitaskers not allowing the sharing of an IRQ by
  965.           more than one task (window).
  966.  
  967.           In any  case, version 1.20 of X00  has been tested with DESQview,
  968.           RBBS  and  8 comm  ports  sharing  IRQ 3.    I  have also  tested
  969.           MultiLink  with  2  comm  ports  sharing  the  same  IRQ.    With
  970.           MultiLink, I had to use  the NASTY option.  Do not  use the NASTY
  971.           option with DESQview.
  972.  
  973.           The  method  I  have developed  to  force sharing  of  an  IRQ by
  974.           multiple  comm   ports  should   work  on  most,   if  not   all,
  975.           multitaskers.  It is too big a job, and too costly for me to test
  976.           them all.
  977.  
  978.           Some general rules are as follows:
  979.  
  980.           1  - X00 should  be loaded before  the multitasker.   That is, if
  981.           your multitasker allows the  loading of device drivers  into each
  982.           window, DO NOT DO  IT if you wish to  share an IRQ.  Load  X00 at
  983.           boot time and it should then be available to all tasks (windows).
  984.  
  985.           2 - Two different  boards (plugged into different slots)  can not
  986.           share the same IRQ.  This is a hardware limitation and can not be
  987.           corrected  by software.  This means that  you can not plug in two
  988.           internal  modems, set them  for the same  IRQ and  expect them to
  989.           work.   This  does not  apply to  PS/2 systems.   The  problem of
  990.           multiple  boards sharing the same IRQ was corrected in the PS/2's
  991.           buss design.
  992.  
  993.           3 -  When  configuring  the DESQview  windows,  we  specified  NO
  994.           communications  in the  window.   Remember, it  is X00  (which is
  995.           hopefully  outside   any  window)   that  is  doing   the  actual
  996.           communications and not the application program inside the window.
  997.  
  998.           4 - X00 can not  (will not) share an IRQ with other software.  If
  999.           you attempt to run a program in a window that uses an IRQ that is
  1000.           being used by X00, the results are unpredictable.
  1001.  
  1002.           5 - Do not load X00 into EMS memory.  Loading high is okay.
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.                                                                          17
  1011.  
  1012.                     Appendix A, Hardware Port and IRQ Assignments
  1013.  
  1014.           I have  obtained the following information  from various sources.
  1015.           Accuracy is not guaranteed.  In fact, nothing in this document is
  1016.           guaranteed.
  1017.  
  1018.           Addresses and IRQs for COM1 and COM2
  1019.  
  1020.                COM1 uses 03F8h and IRQ4
  1021.                COM2 uses 02F8h and IRQ3
  1022.  
  1023.           Defacto standard for COM3 and COM4 for PC, XT and AT
  1024.  
  1025.                COM3 uses 03E8h and IRQ4
  1026.                COM4 uses 02E8h and IRQ3
  1027.  
  1028.           Addresses and IRQ for COM3 through COM8 on the PS/2
  1029.  
  1030.                COM3 uses 3220h and IRQ3
  1031.                COM4 uses 3228h and IRQ3
  1032.                COM5 uses 4220h and IRQ3
  1033.                COM6 uses 4228h and IRQ3
  1034.                COM7 uses 5220h and IRQ3
  1035.                COM8 uses 5228h and IRQ3
  1036.  
  1037.           All  PCs prior to the PS/2 only  used 12 bits to address hardware
  1038.           I/0 ports.   Systems prior to  the PS/2 and EISA  can not address
  1039.           the standard  addresses for COM3 through COM8.  If an AT of below
  1040.           attempts  to  address  COM3   through  COM8  using  the  standard
  1041.           addresses, only  the low 12 bits  of the address are  used.  That
  1042.           is,  the high digit of  the hexadecimal address  will be ignored.
  1043.           This  means that any reference to COM3 through COM8 will actually
  1044.           address ports 220h through 22Fh.
  1045.  
  1046.           You  should avoid  expansion boards that  use ports  220h through
  1047.           22Fh unless the expansion board is a serial I/O board. 
  1048.  
  1049.           X00 will (attempt to) determine the hardware architecture that it
  1050.           is being executed  on and  use to appropriate  port addresses  as
  1051.           defaults.
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.                                                                          18
  1060.  
  1061.                                 Appendix B, SIO Chips
  1062.  
  1063.  
  1064.           The following is a collection of comments developed from hearsay,
  1065.           random documents, experience,  and technical specifications.  So,
  1066.           take it with a grain of salt.  Order information from the various
  1067.           manufactures if you want accurate information.
  1068.  
  1069.           A very good reference book that I use is  available from National
  1070.           Semiconductor Corporation.   It  covers most  of the  SIO devices
  1071.           (also  called UARTs)  that you will  find in all  PCs and clones.
  1072.           The title  of the book is  Microcommunications Elements Databook.
  1073.           The publication number (manual number) is  400066.  I am not sure
  1074.           that   the   book  can   be   ordered   directly  from   National
  1075.           semiconductor.  They  may   require  that  you  get   it  from  a
  1076.           distributor.   In any case, the address on the back of the manual
  1077.           is:
  1078.  
  1079.                National Semiconductor Corporation
  1080.                2900 Semiconductor Drive
  1081.                P.O. Box 58090
  1082.                Santa Clara, CA 95052-8090
  1083.  
  1084.                Tel:(408)721-5000
  1085.                TWX:(910)339-9240
  1086.  
  1087.           8250
  1088.  
  1089.           As best that I know, the 8250 was the first  SIO chip (integrated
  1090.           circuit) that was  used by the  IBM PC  and many clones.   In  my
  1091.           opinion,  it was a poor choice  on the part of IBM.   I feel many
  1092.           superior devices, at comparable  prices, were readily  available.
  1093.           At that time, I feel the 8251A or the 8530 would have been better
  1094.           choices.   I feel IBM  used the 8250  to insure the PC  would not
  1095.           have   synchronous  communications   capability  in   a  standard
  1096.           configuration.
  1097.  
  1098.           From  a hardware standpoint the 8250 is a relatively slow device.
  1099.           It is advisable that programmers not perform successive inputs or
  1100.           outputs to this device.  It seems that software programs can load
  1101.           the various registers of the 8250 faster  than it can process the
  1102.           information.    The  8250  had  a  total  of  7 registers.    The
  1103.           specifications state that 56kb is the maximum baud rate.
  1104.  
  1105.           8250A
  1106.  
  1107.           I believe the 8250A is the  8250 with some bug fixes.  I  have no
  1108.           idea  what  the bugs  may  have  been.   A  quick  glance at  the
  1109.           specifications shows the speed  of the 8250 and 8250A  to be much
  1110.           the  same.   The 8250A  added an  8th register.   This additional
  1111.           register enables software to detect if an 8250 is installed.  The
  1112.           specifications state that 56kb is the maximum baud rate.
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.                                                                          19
  1121.  
  1122.           16450
  1123.  
  1124.           The  16450 seems to be a speeded up  version of the 8250A.  There
  1125.           is no  direct way (that  I know  of) for software  to detect  the
  1126.           difference between an 8250A and a 16450.  I believe the 16450 was
  1127.           developed to  eliminate the  need for  software to  insert delays
  1128.           between successive  accesses to  the device.   The specifications
  1129.           indicate the 16450 is a much faster device than its predecessors.
  1130.           The additional speed is only the speed at which the processor can
  1131.           access the  device.  The maximum baud rate for the 16450 is still
  1132.           stated at  56kb.  However, I  have been told by  some people that
  1133.           they have run the  16450 successfully at much higher speeds. I do
  1134.           not believe there was ever a 16450A.
  1135.  
  1136.           16C451
  1137.  
  1138.           The  16C451 is a CMOS version  of the 16450.  CMOS  is a term for
  1139.           the  material and  manufacturing process  used to make  the part.
  1140.           CMOS typically uses less  power than other technologies.   If you
  1141.           are  not  designing hardware,  you should  view  the 16C451  as a
  1142.           16450.
  1143.  
  1144.           16550 Non A
  1145.  
  1146.           It is  hard to  find a 16550  (Non A).   I  was told by  National
  1147.           Semiconductor that  they did  everything  they could  to get  all
  1148.           16550s  back.  X00 (and  XU) will detect a 16550  and tell you if
  1149.           you have one.   I am told  that the 16550 was  installed in early
  1150.           PS/2 systems.
  1151.  
  1152.           The 16550  was the first  shot at  a FIFOed version  of the  8250
  1153.           family  from  National semiconductor.    However, I  was  told by
  1154.           National  Semiconductor  that the  FIFOs  of  the 16550  are  not
  1155.           reliable and  they should not be enabled.  X00 will treat a 16550
  1156.           like  a 16450.    In  this mode,  they  are  reliable.   National
  1157.           Semiconductor would not provide  me with a specification for  the
  1158.           16550.  However, I suspect  its maximum baud rate is the  same as
  1159.           the 16550A which is 256kb.
  1160.  
  1161.  
  1162.           16550A, 16550AF and 16550AFN
  1163.  
  1164.           In the  manuals  that I  have,  National Semiconductor  does  not
  1165.           explain  the differences between the  16550A and the  16550AF.  I
  1166.           suspect the AF part may have a few bug fixes.  I believe the N in
  1167.           AFN  describes packaging,  ceramic  versus  plastic,  DIP  versus
  1168.           surface mount etc.
  1169.  
  1170.           In  the opinion  of the  author, there is  no substitute  for the
  1171.           16550A (and its  successors) in the 8250 type series.  The 16550A
  1172.           is compatible with software written for the entire family of 8250
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.                                                                          20
  1181.  
  1182.           type  devices.  Programs that  are 16550A aware  can provide much
  1183.           improved performance over previous devices.
  1184.  
  1185.           The  maximum  baud rate  for the  16550A  is specified  at 256kb.
  1186.           However, due to the hardware design of the PC et al, 115kb is the
  1187.           maximum baud rate that can be programmed.
  1188.  
  1189.           The 16550A can be  plugged into the same socket that  contains an
  1190.           8250, 8250A  or 16450.  If  your SIO expansion board  has the SIO
  1191.           chips  in  sockets,  you can  upgrade  to  the  16550A by  simply
  1192.           removing the old chips and replacing them with 16550As.
  1193.  
  1194.           The key to  the performance increase of the 16550A  is its FIFOs.
  1195.           It has 16 byte FIFOs for both transmit and receive data.
  1196.  
  1197.           16550s Made by Western Digital
  1198.  
  1199.           I have been told, but I have not verified for myself, that 16550s
  1200.           made  by Western  Digital have  a problem  with their  FIFOs when
  1201.           working at 2400 baud or below.
  1202.  
  1203.           16C551
  1204.  
  1205.           The  16C551 is  a CMOS  version of  the 16550AF.   See  the above
  1206.           description of  the 16C451 for a discussion of CMOS.  Do not feel
  1207.           you need to upgrade from a 16550A or AF to a 16C551.  There is no
  1208.           gain from an existing users point of view.
  1209.  
  1210.           16C552
  1211.  
  1212.           The 16C552 is two 16C551s  on a single chip.  These  devices will
  1213.           start showing up on multi-port serial I/O cards.
  1214.  
  1215.           82510
  1216.  
  1217.           I  believe Intel is the only company that manufactures the 82510.
  1218.           The 82510  is feature rich with several  modes of operation.  Its
  1219.           default  mode is to operate as  a 16450.  The 82510  has a 4 byte
  1220.           FIFO  for both  transmit and  receive  data.   A 4  byte FIFO  is
  1221.           sufficient to provide significant performance over a basic 16450.
  1222.  
  1223.           The  82510 is small in size.  Therefore,  it is found in many lap
  1224.           tops.
  1225.  
  1226.           The 82510 is  somewhat of a sleeper.  I believe  it would be much
  1227.           more widely used if Intel had promoted it more.  However, given a
  1228.           choice  between  the 82510  and the  16550A,  I would  select the
  1229.           16550A.
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.                                                                          21
  1238.  
  1239.                        Appendix C, Multi-Port Serial I/0 Cards
  1240.  
  1241.           I  get many requests for information  about multi-port serial I/O
  1242.           card.   I will describe  the boards  that I know  about (or  have
  1243.           heard about) here.  I  will add to the list as  I receive precise
  1244.           information from users.
  1245.  
  1246.           My personal  experience is with three boards  that allow multiple
  1247.           serial I/O ports to share  a single IRQ.  The first board  that I
  1248.           experimented with  was the  Connect-Com 4  from Software  Link in
  1249.           Atlanta Georgia.  The second board is the 4 PORT RS-232 CARD from
  1250.           Decision-Computer International in Taipei, Taiwan.  The last (and
  1251.           best) is the STB 4COM.
  1252.  
  1253.           STB 4COM  (ISA buss)
  1254.  
  1255.           I am very impressed with the STB 4COM card, they  have almost got
  1256.           it.  Yes,  its the same  company that makes the  VGA cards.   The
  1257.           4COM card uses  a 16554 which is  the equivalent of four  16550A.
  1258.           Comm ports can use IRQs 2/9, 3, 4, 5, 10, 11, 12, and 15.  Any or
  1259.           all  ports can  share IRQs,  and they  have done  this right.   I
  1260.           tested X00  with all four  ports of  the 4COM on  IRQ12 and  they
  1261.           worked  correctly.  The user can select  any of the following I/O
  1262.           port address for a comm port:  3F8, 2F8, 3E8, 2E8, 1A8, 1E8, 1F8,
  1263.           2A8.
  1264.  
  1265.           The 4COM  card is priced  at $110 and  I ordered mine  from Steve
  1266.           Winter  of  Prerapture  Solutions.    Steve  can  be  reached  by
  1267.           telephone at 1-919-286-1502 for  information and foreign callers.
  1268.           In the US orders can be placed  by calling 1-800-735-5266.  Their
  1269.           mailing address is:
  1270.                Prerapture Solutions
  1271.                1806 Albany St.
  1272.                Durham NC 27705-3135
  1273.  
  1274.           Connect-Com 4
  1275.  
  1276.           I found the manual for the Connect-Com 4 to be very confusing and
  1277.           their tech  support even  less helpful.   I was  able to  get the
  1278.           board  configured to  use  the standard  COM1  and COM2  and  the
  1279.           defacto standard for COM3  and COM4.  If you use  the Connect-Com
  1280.           4, I suggest  that you use  it in this  manner.  This means  that
  1281.           COM1 and COM3 will use IRQ4 and COM2 and COM4 will use IRQ3.  The
  1282.           Connect-Com  4 has  an 8 position  DIP switch  for configuration.
  1283.           The  setting that I used was positions 2, 3, 7 and 8 ON (up), and
  1284.           all  other positions OFF (down).  In retrospect the Connect-Com 4
  1285.           seems a bit  expensive.  However,  once configured properly,  the
  1286.           Connect-Com  4 worked  without  problem.   Software  Link can  be
  1287.           reached in Atlanta Georgia at 404-448-5465.
  1288.  
  1289.           4 and 8 Port Boards from Decision-Computer
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.                                                                          22
  1298.  
  1299.           The second  board that I have personally used, and the one that I
  1300.           am  currently  using is  from Decision-Computer.   The  manual is
  1301.           written  well enough that I  did not need  any technical support.
  1302.           There are two boards of interest from Decision-Computer, one is a
  1303.           4 port serial  I/O card  and the other  is an 8  port serial  I/O
  1304.           card.   I read  somewhere in the  documentation (which I  can not
  1305.           find  at  this time)  that  the  boards  are  a clone  of  boards
  1306.           available from AST.
  1307.  
  1308.           The boards from  Decision-Computer are configured by  jumpers.  I
  1309.           use 4  ports of  the 8 port  card.   I selected  the (so  called)
  1310.           Compatible Mode.  This  means that the first two serial I/O ports
  1311.           operate   as  standard  COM1   and  COM2  using   IRQ4  and  IRQ3
  1312.           respectively.  The  jumper setting for Compatible Mode is clearly
  1313.           shown  in  the manual  (page  8  of my  manual).    The I/O  port
  1314.           addressed  used in that mode are also clearly defined on the same
  1315.           page.
  1316.  
  1317.           A second jumper that must be set (JP2) defines the number of wait
  1318.           states.   I set  the  jumper in  position 3  which  means 2  wait
  1319.           states.   This was for a  20 mhz 386 system.   This setting works
  1320.           fine for me.  More  wait states may be required or less  may work
  1321.           on your system.   The amount of time lost due  to wait states for
  1322.           serial I/O is very minimal.
  1323.  
  1324.           The last jumper(s) for the Decision-Computer 8 port RS-232  board
  1325.           is the selection of the IRQ(s)  for ports other than the first 2.
  1326.           I selected  IRQ3 for the additional  ports that I am  using (I am
  1327.           only using 4 of the 8).  This means that the first port (COM1) is
  1328.           using IRQ4, all of the other  (3) ports are using IRQ3.  Position
  1329.           2 of JP3 (left side) is the jumper that I installed.
  1330.  
  1331.           Stargate Plus 8 board from Software Link
  1332.  
  1333.           Dan  Fox originally helped me with the testing of multiple serial
  1334.           I/O ports sharing  a single IRQ.  He informed  me that the serial
  1335.           I/O board that he uses is a Stargate Plus 8 Board.   He purchased
  1336.           the board  from Software  Link in Atlanta  Georgia, 404-448-5465.
  1337.           Dan has all 8 ports using IRQ3.
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.                                                                          23
  1346.  
  1347.                                         INDEX
  1348.  
  1349.           16450 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  19
  1350.           16550 Non A . . . . . . . . . . . . . . . . . . . . . . . . .  19
  1351.           16550A  . . . . . . . . . . . . . . . . . . . . . . . . . . .  19
  1352.           16550AF . . . . . . . . . . . . . . . . . . . . . . . . . . .  19
  1353.           16550AFN  . . . . . . . . . . . . . . . . . . . . . . . . . .  19
  1354.           16550s Made by Western Digital  . . . . . . . . . . . . . . .  20
  1355.           16C451  . . . . . . . . . . . . . . . . . . . . . . . . . . .  19
  1356.           16C551  . . . . . . . . . . . . . . . . . . . . . . . . . . .  20
  1357.           16C552  . . . . . . . . . . . . . . . . . . . . . . . . . . .  20
  1358.           8250  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  18
  1359.           8250A . . . . . . . . . . . . . . . . . . . . . . . . . . . .  18
  1360.           82510 . . . . . . . . . . . . . . . . . . . . . . . . . . . .  20
  1361.           Addresses and IRQ for COM3 through COM8 on the PS/2 . . . . .  17
  1362.           Addresses and IRQs for COM1 and COM2  . . . . . . . . . . . .  17
  1363.           Appendix A, Hardware Notes  . . . . . . . . . . . . . . . . .  17
  1364.           Appendix B, SIO Chips . . . . . . . . . . . . . . . . . . . .  18
  1365.           Appendix C, Multi-Port Serial I/0 Cards . . . . . . . . . . .  21
  1366.           B option, Locking Baud, Data, Parity and Stop bits  . . . . . . 7
  1367.           Baud rates  . . . . . . . . . . . . . . . . . . . . . . . . . . 8
  1368.           BIOS RAM  . . . . . . . . . . . . . . . . . . . . . . . . . .  10
  1369.           CAPTURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
  1370.           COMn and PORTn  . . . . . . . . . . . . . . . . . . . . . . . . 6
  1371.           CONFIG.SYS  . . . . . . . . . . . . . . . . . . . . . . . .  5, 6
  1372.           Defacto standard for COM3 and COM4  . . . . . . .  11, 12, 17, 21
  1373.           Defer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
  1374.           DESQview  . . . . . . . . . . . . . . . . . . . . .  5, 9, 13, 16
  1375.           DV  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
  1376.           Eliminate . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
  1377.           FIFO  . . . . . . . . . . . . . . . . . . . . . 9, 10, 15, 19, 20
  1378.           FOSSIL  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
  1379.           GETTING STARTED . . . . . . . . . . . . . . . . . . . . . . . . 5
  1380.           IRQ SHARING . . . . . . . . . . . . . . . . . . . . . . . . .  16
  1381.           Licensing Information . . . . . . . . . . . . . . . . . . . . . 2
  1382.                Commercial License . . . . . . . . . . . . . . . . . . . . 2
  1383.                Commercial license fasttrack . . . . . . . . . . . . . . . 4
  1384.                Non-Commercial License . . . . . . . . . . . . . . . . . . 2
  1385.           Locked  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
  1386.           Locking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
  1387.                Baud . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
  1388.                Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
  1389.                Parity and Stop bits . . . . . . . . . . . . . . . . . . . 7
  1390.                Valid locked baud rates  . . . . . . . . . . . . . . . . . 8
  1391.           Mapping port assignments  . . . . . . . . . . . . . . . . . .  11
  1392.           Multi-Tasking . . . . . . . . . . . . . . . . . . . . . . . .  13
  1393.           NOFIFO  . . . . . . . . . . . . . . . . . . . . . . . . . . .  10
  1394.           NOPOST  . . . . . . . . . . . . . . . . . . . . . . . . . . .  10
  1395.           Number of data bits . . . . . . . . . . . . . . . . . . . . . . 8
  1396.           Number of stop bits . . . . . . . . . . . . . . . . . . . . . . 8
  1397.           Parity bit  . . . . . . . . . . . . . . . . . . . . . . . . . . 8
  1398.           PKUNZIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.                                                                          24
  1407.  
  1408.                Authentic files  . . . . . . . . . . . . . . . . . . . . . 5
  1409.           Port assignments  . . . . . . . . . . . . . . . . . . . . . .  11
  1410.           Quick Start . . . . . . . . . . . . . . . . . . . . . . . . . . 5
  1411.           R, Set Receive Buffer Size  . . . . . . . . . . . . . . . . .  10
  1412.           RBBS  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  16
  1413.           SIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
  1414.           SIO Chips . . . . . . . . . . . . . . . . . . . . . . . . . .  18
  1415.           Specifying number of ports  . . . . . . . . . . . . . . . . . . 7
  1416.           T, Set Transmit Buffer Size . . . . . . . . . . . . . . . . .  11
  1417.           Terminate and Stay Resident . . . . . . . . . . . . . . . . . . 6
  1418.           THE BIOS INT 14h EMULATOR . . . . . . . . . . . . . . . . . .  15
  1419.           TSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
  1420.           Uninstalling X00  . . . . . . . . . . . . . . . . . . . . . .  12
  1421.           VP or Master Interrupt Enable . . . . . . . . . . . . . . . .  11
  1422.           Warranty  . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
  1423.           WHAT IS X00 . . . . . . . . . . . . . . . . . . . . . . . . . . 1
  1424.