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