

                        SIO2K Beta Revision history

02/25/98 - Beta 003
     First public release.

02/26/98 - Beta 004
     The bit rate was being set incorrectly on most uarts.  This problem
     was corrected.  The text file techtalk.txt was added to the
     distribution files.

03/06/98 - Beta 005
     Support added for the 16850 uart.  Except for the size of the fifos,
     this chip seems every bit the equal of the Hayes ComBic (used on the
     ESP) that I like so much.

     At this time, I cannot add support for the 16952.  The chip seems to
     have a bug that is difficult for me to work around.  Working around
     the bug would severely impact the performance of other uarts.  I have
     reported the bug to Oxford Semiconductor.  I can support the 16952
     with a special interrupt service routine, but that is going to take
     time to write.

     Fixed a problem in vsio2k.sys so that it would not unnecessarily open
     serial devices during session initialization.

     Fixed a problem where RTS would not be turned on for 16650 UART.

     Fixed a problem with the 64 byte FIFOs of the 16750.

     Crystal frequency was being incorrectly calculated for x2 devices. 
     This has been corrected.

03/17/98 - Beta 006
     Corrected a problem where the IRQ could not be automatically detected
     when a series of UARTs shared the same IRQ.

     Automatic IRQ detection is now only done once.

     Automatic IRQ detection is skipped for PCI devices as the IRQ is
     known.

     The read function incorrectly returned an error 8111 (hex) at times. 
     The problem has been corrected.

     Somewhere along the line of changes, the transmit load count was
     corrupted.  This meant that only one character was being transmitted
     per interrupt.  This problem has been corrected.

     The code to support the 16650 and 16650A was severely corrupted in the
     beta 005 release.  This has been corrected.

     Xon/Xoff flow control on UARTS with built in flow control was not
     being set correctly in previous versions, and is now corrected.

03/30/98 - Beta 007
     Added support for the GTEK JetPort PCI cards.

     Added Resource Manager (aka Hardware Manager) support.

     Detection of SMC SuperIO motherboard uarts is now done at boot time
     instead of at "first touch" time.


     Corrected a bug in VMODEM.EXE that caused it to trap (at program exit)
     on some systems.

     VMODEM.EXE displayed the wrong COMn name in log messages.  This has
     been corrected.

     Corrected a problem is ESP.SYS that would cause a system hang if
     an ESP port was used in compatibility mode following its use in
     enhanced mode.  Note that once an ESP port is used in enhanced
     mode, compatibility mode will not work again until power is
     cycled on the computer.  I do not know why, that is just the way
     it is.

     Bit rates above 115200bps was not being set correctly on SMC SuperIO
     (motherboard) UARTS.  This problem has been corrected.

     Corrected a second problem in ESP.SYS that would cause system hangs.

     If a system had more than one PCI bus, the same board would be
     detected twice.  This problem has been corrected.

05/11/98 - Beta 008
     If no config file was used (sio2k.cfg) then PCI devices were not being
     completely initialized.  This problem has been corrected.

     Incorrect status was being returned (at times) from IoCtl function
     64h.  This problem has been corrected.

     A problem with shared IRQs on PCI devices has been corrected.

     A problem that caused lockups (continuous interrupts) using PCI
     devices has been corrected.

     The 16850 and 16950 were not being reset correctly at device close. 
     This problem has been corrected.

     A problem in the implementation of the Os2Shares config file option
     has been corrected.  This error prevented some DOS apps from being
     able to access a port.

09-16-00 - Beta 009b
     Well boys and girls this is really not a new beta, it is a re-release
     of the 009/009a code to see if anything got broken during my two year
     burn out sabbatical.

     However, what I need to know is what problems are occurring.  PLEASE
     SEND REPORTS TO sio2k@gwinn.com.

     There are some big changes coming in the next (real) beta release.
          I have finally figured out how to automatically determine (at
          boot time) if com.sys is loaded and what ports it is servicing. 
          This is not as simple as one might think.

          Anyhow, having this knowledge (about com.sys) at boot time will
          allow sio2k to configure more automatically. The only thing that
          I will now need in a config file is legacy ISA stuff. So, a
          completely changed, and greatly simplified, config file is coming
          in a near future release.

          I have also contacted manufactures of PCI serial cards for
          information, so support for more serial cards is coming.  If you
          want to help see PCI.TXT.

     I am going to drop the Hayes ESP support.  There is too much work to
     do for a board that is 5 years out of manufacturing.  If you like the
     ESP, many of the newer PCI cards are just as good.

     I am going to do away with the key file.  I decided that no matter how
     hard I try, someone is going the figure it out and release a hack to
     get around it.

     Vmodem.sys will be changed so that the number of virtual modems to be
     supported will be specified in its command line, and not in a config
     file (as it now is done).

     So, if my burn out is truly over, as I think it is, sio2k may finally
     get to release.  I need the money too. :-)

09-16-00 - Beta 009c
     The config files have NOT been changed.

     Completely rewrote the Resource Management and reporting software.

     It seems that what most users want is support for various PCI serial
     cards, that is what I am getting the most messages about.  So prior to
     the big changes mentioned in the previous release, I have completely
     rewritten the PCI detection code.  There is now an external (to the
     drivers) file named PCI.INC that is used to identify installed PCI
     serial cards.  There is information in the PCI.INC file that may
     enable you to get your PCI card recognized by the drivers.  PCI.INC
     MUST BE IN THE SAME DIRECTORY THAT THE DRIVERS ARE LOADED FROM AT BOOT
     TIME.  The file PCI.TXT has not been updated.

     NOTE:  If you have more than one PCI serial card installed, the
     sequence in which ports are assigned may change.  The sequence in
     which the boards are found is now controlled by their order in
     PCI.INC.  Previously, the order was controlled by which PCI slot the
     card was plugged into.

10-01-00 - Beta 010
     Updated some of the txt files, PCI.TXT and FAQ.TXT.

     The Hardware (Resource) manager is now informed of the IRQ on legacy
     ISA ports.  However, the IRQ is not reported until a given port is
     accessed at least once.  An easy way to access the port is to do
     something like MODE COM1 before executing rmview.  Note that the IRQ
     for PCI cards and most SMC SuperIO chips are known and reported at
     boot time.  That is, there is no need to access these type of ports to
     get the IRQ reported to the hardware manager.

     NOTE NOTE:  At some time in the past, I tried reporting the IRQ to the
     hardware manager after boot time, and OS/2 trapped.  Users of OS/2
     that have not applied fixpaks may still see a trap the first time they
     access a legacy ISA port.  It is also possible that a bug existed in
     sio2k, and I unknowingly fixed it.  If your system traps the first
     time a port is accessed with beta 010, but did not happen with
     previous betas, please report it to me at sio2k@gwinn.com.  I
     currently have fixpak 14 installed on my test system.

     Added the file HELP.ME to the distribution.  This is where I will make
     requests for information and help, sio2k related and not.

     The sample.cfg file has been changed.  COM3 and COM4 have been
     commented out in the DOS/Win (vsio2k.sys) part of the file.  If you
     use a config file, you should remove any references to ports that do
     not exist on your system.

     The drivers will now ALWAYS check for SMC Super I/O devices. 
     Previously the check was only made if enabled via the config file.

     Many internal organizational changes have been made in preparation for
     the elimination of the need for a config file.

10-02-00 - Beta 010a

     A bad bug existed in beta 010 when processing the config file.  Since
     I am now doing most of my testing without a config file, it slipped
     passed me.  This version corrects the config file processing bug.

10-05-00 - Beta 011

     Due to popular request, the ESP driver will continue to be distributed
     with the sio2k set.  ESP.SYS seems to work fine on my system, and as
     one user pointed out, why drop it when I already have the code.

     This is the first version of the sio2k drivers that should completely
     self configure, even for the most complex system.  That is, there
     should be no need for a configuration file.  The automatic assignment
     of ports may differ from those you may have defined in a config file. 
     So, look at the log files to see how the comm ports are being
     assigned.

     If a config file exists it is still parsed, and the parsed information
     is used.

     VMODEM.SYS now has a new command line parameter to specify the number
     of ports. Add NPORTS=4 to the vmodem.sys command line if you want 4
     vmodem ports.  Vmodem.sys defaults to 1 vmodem port if the NPORTS
     option is not present.  For example:

device=c:\sio2k\vmodem.sys logfile=c:\sio2k\sio2k.log nPorts=4

     UART.SYS also has a new command line option to specify legacy ISA
     ports.  Legacy ISA ports are those ports with non-standard I/O
     addresses for the uarts that exist on your system. Uart.sys will
     automatically determine the uart type, the FIFO size and the IRQ being
     used, so only the I/O port address is needed. For example:

device=c:\sio2k\uart.sys logfile=c:\sio2k\sio2k.log LegacyIsa(1a0,240,1a8)

     The first digit of the I/O port MUST BE a decimal digit from 0 to 9. 
     If you have an I/O port address like A78, then enter it as 0A78. You
     can list as many legacy ISA ports as you like.

     If you have a PCI card(s) on your system, the legacy ISA ports are
     assigned last (after the PCI port).

     The LegacyIsa command line option is IGNORED if you use a config file. 
     If you use a config file, you must specify the legacy I/O ports there.

     Documentation updates have been made in install.txt, design.txt and
     vmodem.txt, so read or reread the files.

     A new text file LOGGER.TXT has been added to the distribution zip.  It
     provides some information on how to use logger.exe.

     Sio2k.sys now creates a file named DEVLIST each time the system is
     booted.  This file is created in the directory that sio2k.sys is
     loaded from.  Although the file is not yet used, it will be used by
     vsio2k.sys so it (vsio2k.sys) can determine which I/O address to

     virtualize.  Note that a zero for the I/O port means that the I/O port
     is unknown, but that the device (COMn) name exists.  The I/O port 0
     will not be virtualized.

     If PCMCIA.SYS is loaded on your system (via config.sys), UART.SYS will
     now leave an unassigned device in COM2 to COM4 range if possible. 
     This is/must be done to support the possible insertion of a PCMCIA
     modem.

     Assuming I have not introduced major bugs in this release, I plan to
     start cleaning up vsio2k.sys next.

10-18-00 - Beta 012

     This release could/should be called the notebook release.  PCMCIA
     modems should now work correctly, but read FAQ 11.

     Support has been added for the following National Semiconductor
     SuperIO chips: PC97338, PC87338, PC87309, PC87351, PC87317, PC87360,
     PC87363, and PC87366.  These chips are used on many notebook computers
     and can do bit rates to 921600.  So you people transferring data to
     and from your notebooks via the serial port may now be able to do it
     much faster.

     My thanks to Giovanni Pagni (gpagni@inwind.it) for the addition of the
     National Semiconductor SuperIO devices.  He did all the needed
     research and supplied me with code fragments to detect and program the
     devices.  All I had to do was merge his code fragments into my
     existing code.  Giovanni is a very talented programmer and technician,
     and I am very grateful for his efforts.

     I have noticed one small problem with the National Semiconductor
     SuperIO chips.  Their documentation states they have 32 byte fifos. 
     However, my experiments show a 16 byte fifo, even with great effort
     and experiments to enable the 32 byte fifos.

     Corrected a bug where sio2k reported extended buffering (FIFOs) were
     enabled on devices that have no FIFOs.

     Corrected a recently introduced bug where the bit rate was being
     incorrectly set on SMC SuperIO uarts.

     I have reports of problems with receiving at high speed (230400 and
     above).  I am looking into the problem.

     I am getting a lot of requests about WinModem support.  Currently
     sio2k does not support WinModems.  I will look into these devices when
     time permits.

     Made corrections and additions to the PCI.INC file.


10-27-00 - Beta 012a

     There are not many changes in this beta over the previous one, just
     tweaking.  As mentioned above, I have received reports of problems at
     high speeds.  I took the time to write a "stress test" program that
     showed several weak spots in the 16550 code, which I corrected.

     I can now loop com1 to com1 (not a typo) at 430800bps, error free, on
     a busy system.  This is a total throughput of 921600 (sending 430800
     plus receiving 430800).  The uart is a 16550 with a 16 byte fifo.  The
     test computer has a 233mhz Pentium II, the slowest computer I have on
     which I can test.  The throughput does slow down when the system is
     busy, but flow control prevents errors.  When the system is not busy
     the throughput is very near the theoretical maximum.

10-29-00 - Beta 12b

     Corrected a problem in the processing of DCBs with respect to FIFOs. 
     This error in the drivers resulted in many terminal programs (like
     ZOC) turning off the transmit fifos.  Again, the error was in the
     sio2k drivers, and not the terminal program(s).  Users may see better
     transmit speeds or lower processing overhead as a result of this
     correction.

     This correction in the DCB fifo processing resulted in an unbelievable
     increase in transfer speed from ZOC to ZOC using a null modem cable
     and transferring from com1 to com2 on the same computer.

11-14-00 - Beta 014 (I skipped 13)

     Included in this release is a new program, MODES.EXE.  It is intended
     to be a direct (or near direct) replacement for the MODE command, but
     only for COM ports.  It has some extensions such as ports above COM9,
     locking and unlocking the bit rate, and swapping COM ports around. 
     See MODES.TXT for additional information.

     PCMCIA modems were not being set to default values when plugged in. 
     This only caused problems if the application program did not setup the
     uart and used the default values (which is a dangerous thing for an
     application program to do).

     The 16PCI954 was incorrectly being identified as a 16750.  This
     problem has been corrected.

     Some PCI serial cards have more than one set of configuration
     registers, actually they are the equivalent of two (or more) PCI
     boards on the same card.  Sio2k was only checking the first set of
     configuration registers.  Now all configuration register sets on a PCI
     card are being scaned.

     Corrected a problem in vsio2k.sys.  The number of stop bits in the
     virtual LCR register was not being set correctly when synchronizing
     with the OS/2 drivers.

     Corrected a problem is vsio2k where virtual ports would not work
     unless a config file was present.

     If your system has a SMC SuperIO device that sio2k supports, and also
     has other devices (such as a PCI card) that supported bit rates over
     115200, then a problem appeared in beta 012.  The problem is that the
     bit rate on the other devices (NOT the SMC ports) was being set
     incorrectly.  This problem has been corrected.



     I still have not yet addressed vsio2k.sys as I should, so DOS/Win
     sessions may still be giving you problems, but vsio2k.sys is working
     its way to the top of the list.

     It have a newly assembled WSeB SMP system, but have not got the
     drivers working very well on that system, yet. I may have to split the
     drivers into an SMP version and NON-SMP version.

11-17-00 - Beta 014a

     In beta 014 I added the modes.exe and tested the port swapping. 
     However, I broke the port swapping prior to releasing beta 014.  The
     MODES COM1=COM3 type command should now work in this release.

     This beta (014a) works correctly on my WSeB/SMP system for any serial
     port this is NOT using irq3.  Some other driver, or the kernel, is
     screwing up usage of irq3 on my system.  You may, or may not see the
     same irq3 problem on your WSeB system.

11-19-00 - Beta 014b

     Well it seems that not only is it possible for PCI cards to have
     multiple configuration register sets, some boards duplicate the same
     information, for the same ports, into multiple configuration register
     sets.  Sio2k now check for this and does not attempt to allocate the
     same PCI ports multiple times.  This problem should NOT have called an
     operational problem.  The only problem caused was a lot of error
     messages in the sio2k.log file.

     Added log file entries notices (lines) when the drivers are loaded out
     of order.

     Additional errors in modes.exe have been corrected.

     Added items to faq.txt.

12-13-00 - Beta 015

     This beta is a release candidate.  This does not mean sio2k is ready
     to release.  It means all the code is in place that I intend to add
     before release.  Of course, I need your help to iron out the bugs. 
     There may be more additions as you beta testers may point out
     something that I have forgotten.  Except for bugs, I am moving from
     the code to documentation and other overhead items.  A couple of
     months will still be needed to get sio2k actually released.

     There seems to still be some problems with port swapping using the
     MODES command.  I am working on it.

     The sio2k drivers no longer look for the key file.

     A new command line option (VioPorts) for SIO2K.SYS has been added. 
     See install.txt for a description.

     A new command line option (NoSuperIo) for UART.SYS has been added. 
     See install.txt for a description.

     Some items have been added to FAQ.TXT.


     Continuing with the elimination of the need for any config file,
     SIO2K.SYS will now assign virtual I/O port addresses for devices that
     do not have real I/O addresses.  Vmodem ports are a good example of
     where no real I/O address exist.  To automatically allow access to
     Vmodem type ports from a Dos/Win session, a virtual I/O address will
     now be automatically assigned and used.  NOTE THAT I/O ADDRESSES GIVEN
     IN A CONFIG FILE WILL OVERRIDE THE AUTOMATICALLY ASSIGNED ADDRESSES.

     VSIO2K.SYS now records in it's logfile all the virtual devices being
     supported, their virtual I/O address and virtual IRQ.  The log entries
     are made when the first Dos/Win application is executed, but you will
     have to terminate the Dos/Win session before you can look at the log
     entries.

12-29-00 - Beta 015a

     So, the "release candidate" comment brought you people out of the
     woodwork.  Thanks for your reports.

     At times, DTR was not being set correctly.  This problem has been
     corrected.

     Corrected some minor problems in the DCB processing.

     There is a new command line option for sio2k.sys, "Os2Shares" without
     the quotes.  When this option is set, DOS/Win sessions will be allowed
     to access a port that was opened by an OS/2 session.

     A problem in uart.sys's LegacyIsa command line option has been
     corrected.  Prior versions only defined/used the first LegacyIsa port
     defined.  Now all LegacyIsa ports will be used/setup.

12-30-00 - Beta 015b

     Release candidate 2.  Port swapping, ie modes com2=com5, should now
     work correctly.

01-12-01 - Beta 016

     Every time I mention the word "release" you guys come crawling out of
     the woodwork with weird, and difficult problems.  I am beginning to
     wonder if I am ever going to finish.

     Starting with this release, if the mouse driver is using the hardware
     normally associated with COMn, then the sio2k drivers will setup a
     device COMn that is always "in use".  Hopefully this will clear up the
     problems that those with a serial mouse has been having.  If you have
     a serial mouse, automatically assigned COMn ports may change.  I may
     visit this problem again before release if I can figure out a workable
     solution.

     The vsio2k command line option "vIrqList" has been enhanced to allow
     users to specify which virtual IRQ a given Dos/Win port will use. 
     Existing command lines need not be changed, they will continue to
     function as they have functioned previously.  The new form is:
     vIrqList(4,3,1=7).  This tells vsio2k.sys that it can assign virtual
     IRQs 4, 3, and 7.  However the "1=7" fragment specifies that COM1 is
     to use IRQ 7.  Vsio2k.sys will first attempt to use the user specified
     IRQ for a given virtual COMn port.  If that fails, the default (if
     any) IRQ for the virtual COMn port will be tried next.  If that fails,
     then an IRQ will be selected from the IRQs given in the vIrqList
     (which are IRQs 3 and 4 by default).  The log file created by

     vsio2k.sys will show the exact port/irq combination assignments.  On
     any given system, the virtual IRQs should always be the same. 
     However, the virtual IRQs may differ from those assigned by other
     serial drivers, like vcom.sys and vsio.sys.

     The port swapping, ie modes com1=com4, has additional refinements,
     I'll get it right eventually.

     FAQ.TXT has been updated with additional information.

     A problem in vsio2k.sys was corrected.  At times vsio2k.sys would put
     random numbers for the I/O address of non-existing serial ports in
     BiosRam.

     Vsio2k.sys was allowing Dos/Win sessions to terminate without insuring
     all transmit data was transferred to sio2k.sys.  This problem has been
     corrected.

01-25-01 - Beta 016a

     A command line option, and its default, have been changed for
     uart.sys.  The command line option "NoSuperIo" has been changed to
     "SuperIo".  Previously uart.sys defaulted to ENABLING the enhanced
     options of the uarts on SuperIo chips.  The default is now to IGNORE
     the uarts on the SuperIo chips UNLESS the "SuperIo" option is given in
     the uart.sys command line.

     The default enabling of enhanced uart functions of SuperIo chips was
     causing problems for applications that directly access the uarts. For
     example, the kernel debugger.  It seems there are more apps like this
     than I would assume, and if the user fails to read the sio2k docs, the
     apps do not work under sio2k.

     Those of you with "NoSuperIo" in your uart.sys command line will now
     get a command line error at boot time.  All you need do is remove the
     "NoSuperIo" option from the command line.

     A FAQ about modem initialization has been added.

     Additions were made to PCI.INC to support serial ports on SIIG PCI
     cards.

02-02-01 - Beta 016b

     Corrected a problem in the programming of uarts (650 and up) for
     automatic Xon/Xoff flow control.

     User contribution (by Franois Jacques) of PCI.INC config line for a
     USR modem was added to PCI.INC

02-22-01 - Beta 016c

     For those that are interested, I am currently spending most of my time
     putting together a web server to release sio2k.  I am still working on
     the code too.

     I have added pci.exe to the files in the distribution zip.  I cannot
     remember where I got this program, but it seems to be by Intel, and
     also seems NOT to be copyrighted.  So I will chance distributing
     pci.exe until someone complains.


     The reason for the addition of pci.exe is that it seems the
     manufactures of serial PCI cards will not provide support to their
     OS/2 users.  So I am now willing to help generate the additions to
     PCI.INC that sio2k users need to support their cards.

     PCI.EXE is a DOS program.  To use PCI.EXE open a DOS session and
     execute the program (type PCI at a DOS command prompt), then hit F5. 
     This will create a file named PCI_REGS.DAT in the current directory. 
     Zip this file up and send it to me at sio2k@gwinn.com.  I will attempt
     to generate the addition to PCI.INC to support your card.  Be SURE to
     send the file as an ATTACHMENT.  DO NOT send the file as text included
     in your message because either your mail program, or my mail program
     will mangle the data into an unreadable form.

     In addition to the PCI_REGS.DAT file, I need to know:
          1 - Who manufactures the card, and what they call the card.
          2 - How many serial ports are on the board.
          3 - How many parallel ports are on the board (if any).
          4 - The I/O ports if you know them, possibly from Windows.
          5 - Anything else that you may think is useful.

08-06-01 - Beta 016d

     Additional changes trying to get this thing released.  Operationally,
     this version should be the same as the previous release.

08-31-01 - Beta 017a

     The web site is partially up. Those that have V1 serial numbers from
     10025400 to 10027183 can go to www.gwinn.com and request their free
     registered version of sio2k.  You still need to manually install the
     drivers.

     Those eligible must request their free upgrade before January 1, 2002.

09-01-01 - Beta 017b

     No changes to the driver(s) code from 017a.

     Added an install program (REXX script) named install.cmd to install
     the drivers and edit config.sys.

