home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 4 Drivers
/
04-Drivers.zip
/
s2kv201.zip
/
DESIGN.TXT
next >
Wrap
Text File
|
2001-10-15
|
5KB
|
91 lines
SIO Version 2, Design Information
General:
SIO version 2 is a complete new set of drivers for OS/2. It is not
modification and/or additions to the SIO Version 1 code. Programs, like
Vmodem.exe, are derivatives of the of the originals.
The SIO2K set of drivers have two basic modes of operation, with a
configuration file and without a configuration file. The vast majority of
users will NOT need a configuration file. Those that wish can exercise a
great deal of control (possibly getting into a lot of trouble) using a
configuration file.
The OS/2 serial driver functions has been divided into two main drivers.
They are, SIO2K.SYS and UART.SYS. SIO2K.SYS being the driver that services
requests from OS/2 application. UART.SYS being a driver that services
requests from SIO2K.SYS to directly deal with the hardware. The two
drivers work closely via direct calls.
The division of the serial driver's functions amounts to a separation by
logical and physical functions. SIO2K.SYS being the logical and UART.SYS
being the physical. Those using standard serial ports need never use more
than these two basic OS/2 drivers. DOS/Windows programs will require a
third driver, VSIO2K.SYS, which is the replacement for the virtual driver
VSIO.SYS.
UART.SYS is a driver that supports basic UARTS. Basic UARTS are those like
the original 8250 and its extensions. The UARTS currently supported are
the 8250, 16550, 16650, 16750, 16850, 16950 and their variations (eg 8250A,
16554, 16952 etc).
Having separated the functions of the serial driver, it is now much easier
to support additional varied functions and hardware by adding additional
drivers that uses the same interface as UART.SYS. For example, there is an
ESP.SYS to support the Hayes ESP card (I have been told that Hayes has
discontinued the ESP, a shame). Another example is VMODEM.SYS to support
VMODEM.EXE.
Another advantage of this separation is that those who do not have hardware
like the ESP need not be burdened with the code to support those devices,
or the potential problems of code executing to support hardware that a
given user does not have.
Some Specifics
SIO Version 2 can support an unlimited number of serial devices. Well, in
reality there are limits, but they are imposed by the memory and hardware
in your computer. In addition, there is an arbitrary limit of 256 support
ports imposed by the code. This is done to keep memory utilization down.
The UART hardware is not touched prior to the port being opened by an
application program. In other words, the UARTs are not touched at boot
time. Problems occurring at boot time are next to impossible for users to
deal with. Eliminating UART examination at boot time removes much of the
potential of problems during the boot process. A log file is created (or
added to) during the boot process to report problems and information about
the loading process.
SIO version 2 can be loaded at the same time as another serial driver, such
as, COM.SYS and SIO.SYS (version 1). This means one can use COM.SYS to
control COM1 to COM4 and SIO2K.SYS to control COM5 and up. However, one
must use a configuration file to load concurrently with another driver.
The virtual driver, VSIO2K.SYS is NOT limited to use with SIO2K.SYS. The
virtual driver can be used with any OS/2 driver (such as COM.SYS) that
correctly implements the OS/2 serial driver specification. This means that
users with drivers like the DigiBoard drivers should now have a virtual
driver allowing DOS/Windows programs to access those ports. Note:
VSIO2K.SYS has currently only been tested with SIO2K.SYS and COM.SYS.
The IRQ being used by a given UART is always automatically detected. There
is no way for the user to specify the IRQ. Note: if the IRQ cannot be
automatically detected, the serial port is simply not going to work, even
if the user specifies an IRQ. So there is no reason for the user to
specify the IRQ.
Prior to allowing a serial port to be accessed, an integrity check is
performed. If the UART hardware fails the integrity check, a "NOT READY"
error is returned to the application that accessed the serial port.
All the drivers in the SIO version 2 package can/will create logfiles.
Operating systems, such as OS/2, make it very difficult for a driver to
communicate useful information to users during the booting process. Often
the user is presented with an obscure error message that has little
relevance to the actual problem. Hopefully, the logfiles will make the
real problem a little more understandable to the user.