SIO.SYS vá0.26 01/03/93 SIO.SYS and VSIO.SYS are functional, but not exact, replacements for IBM's COM.SYS and VCOM.SYS. This file should be read sequentially -- that is, subsequent version improvements/enhancements will be described as they are implemented. Please read the ENTIRE file to determine current SIO/VSIO implementation. ---------------------------------------------------------------------------- Install SIO.SYS in OS/2 2.0's CONFIG.SYS like this (case is not significant): For COM1 & COM2 support only: DEVICE=C:\SIO.SYS For COM1 through COM4 support: DEVICE=C:\SIO.SYS (COM1,3F8,IRQ4) (COM2,2F8,IRQ3) (COM3,3E8,IRQ4) (COM4,2E8,IRQ3) other ports: (COMx,yyy,IRQz) where x=comm port number (1 to 8 supported) yyy=address in hex, z=interrupt number note: the "COM" and "IRQ" prefixes are optional. The number alone will work just fine, ie: (1,3F8,4) If a 16550A Buffered UART is detected, it will be used. OS/2's MODE BUFFER= parameter will have no effect on SIO.SYS' handling of the FIFO buffers (which are enabled at 8 bits receive, 16 bits transmit). Be sure and REM out or remove the COM.SYS *and* VCOM.SYS lines. This driver is ONLY for OS/2 comms at present and will not work with OS/2's VCOM.SYS. A companion VSIO.SYS DOS box virtual comms driver is coming up that will include support for DOS box FOSSIL comms operations as well. New in v0.00i: Port(s) may be locked by adding a colon and the bps rate following the port number. This will eliminate the need for OS/2's MODE command to set the port speed. The 16550A UART will support port speeds of up to 115200 bps. Example: DEVICE=C:\SIO.SYS (COM1:38400,3F8,IRQ4) (COM2:57600,2F8,IRQ3) New in 0.00j: Binkley reports TO=On, BUFFER=Off, FIFO (Tx=1, Rx=1) -- should be TO=Off, BUFFER=ON, (Tx=8, Rx=16). Fixed. New in 0.00k: Binkley reports TO=Off, MODE reports TO=ON. Fixed. New in 0.00l: Minor code change. Shouldn't affect anybody, but report if you see a change in operation. New in 0.00m: XON/XOFF fixes, DOS box comms support via VSIO.SYS. Install VSIO.SYS in CONFIG.SYS with no parameters, i.e: DEVICE=C:\VSIO.SYS After installing VSIO.SYS & SIO.SYS v0.00m, you will find there are 4 new OS/2 DOS session "DOS settings" available: Uses_COM1 Uses_COM2 Uses COM3 Uses_COM4 One or more of these can be set to ON by use of its "radio button" in the OS/2 settings box, SESSION tab. I experienced a "Trap 000d" after installing SIO.SYS and VSIO.SYS by attempting to open a DOS box prior to setting one of these, so be sure and modify your DOS settings after installation and before double-clicking on a DOS VDM icon. These settings enable specific comm ports for DOS sessions in the same manner as VCOM.SYS' HW_COM option -- that is, comm port interrupts will be serviced by OS/2 directly, with no virtualization through SIO.SYS. There is NO interprocess management, so multiple DOS comm sessions, or concurrent OS/2 and DOS comm activity are at this point somewhat problematical. OS/2's MODE.COM is not able to access the port in the same session (it reports the port being in use by another process) -- this will be attended to soon. True DOS box virtualization of the ports through SIO.SYS is next on the agenda, but throughput will ultimately be limited by OS/2's default interrupt handlers. Native FOSSIL support will likely be added too, to eliminate the necessity of loading X00 v1.49a to support DOS box FOSSIL-based programs. The bottom line is that OS/2 2.0 DOS box comms will still have performance problems. To increase throughput in DOS sessions, the current OS/2 interrupt handlers will have to process more interrupts per second than they are presently capable of. IBM points this out in the README.TXT that came with OS/2 2.0 GA -- however, NO such limitation applies to single or multiple native OS/2 comms sessions when SIO.SYS is used. Essentially, this first version of VSIO.SYS provides isolation of DOS sessions and OS/2 sessions. That is, it prevents DOS sessions from accessing a serial port that has not been flagged in the DOS session parameters (Uses_COMn). New in 0.00o: VSIO.SYS code cleaned up - should solve some of the problems - NO performance enhancements. MODE.COM can now access the port in the current session. SIO.SYS changed only to synchronize with some of the changes to VSIO. From this version forward, SIO and VSIO versions should "match" - be sure that the file dates (not times) are identical. New in 0.00p: Corrected a serious bug in VSIO.SYS that would/could cause a crash when a DOS session was started up. Also, VSIO now checks that it matches the installed SIO -- if there is no match, VSIO will refuse to install. New in 0.00q: Minor code changes that might fix the problems Ivan Schaffel is experiencing. Please report any other new features :-) New in v0.00r: 4 new OS/2 DOS session "DOS Settings": Simulate_COM1 Simulate_COM2 Simulate_COM3 Simulate_COM4 These DOS settings will allow VSIO.SYS to emulate a 16550A UART to a DOS comm program in a VDM (whether there's a 16550A installed or not). When these new settings are used, VSIO.SYS will route all serial I/O calls through SIO.SYS. The new settings must be used in conjunction with the "Uses_COMn" settings introduced in v0.00m. Both "Uses_COMn" and "Simulate_COMn" must be "on" for "Simulate_COMn" on port n. New in v0.00t: Major improvements in DOS box throughput. Carrier detect (or lack of) problem fixed. DTR is now dropped and 16550A FIFOs are disabled at shutdown or ctl-alt-del reboot. New in v0.00u: Another DOS box problem fixed. New in v0.00v: "Simulate_COMn" changed to "Virtualize_COMn". At bootup, "Virtualize_COMn" defaults to "on" for all ports. After replacing SIO/VSIO.SYS v0.00u with v0.00v, remove any DOS sessions from your startup routine before rebooting. Attempting to open more than one DOS session accessing the same comm port could previously cause the system to crash -- this has been corrected. New in v0.00w: More fixes to VSIO.SYS to eliminate possible Trap when DOS box is opened. New in 0.00x: Mostly changes in VSIO dealing with DOS session startup and shutdown. An error that could cause system crashes at DOS session shutdown was corrected. New in 0.00y: Corrections in DOS startup that could cause VSIO to refuse to allow a DOS session to start. Correction in 16550 virtualization that could cause some 16550-aware DOS programs not to work. COM3/COM4 are not enabled unless spelled out in the SIO command line. There is now only one DOS Setting "Virtualize_COM_Ports" which defaults to on. This means that shelled DOS programs can now access the com ports. Probably other fixes that slip memory. New in 0.00z: 1 - New DOS settings, "Allow_Access_COMn". 2 - Changes in 16550A virtualization 3 - Code added to wake a sleeping DOS session 4 - DOS sessions are (now) not allowed to change a locked baud rate 5 - General clean up New in v0.00a: 1 - COM ports used by DOS sessions are now freed up by most programs. TSRs, such as X00.EXE, will not release COM ports. 2 - A problem was corrected that could cause crashes when a DOS session was being closed. This problem was most noticeable when multiple COM ports were used by multiple DOS sessions. New in vá0.00b: 1 - Corrected erroneous status errors (several of them). 2 - Corrected flow control (RTS/CTS) problems. New in á0.01a: A problem with virtualized interrupts has been corrected. VSIO no longer drops DTR between DOS programs. New in á0.01b: Additional problems have been corrected in the 16550 virtualization. New in á0.10 Uploaded to CompuServe OS2USER, Library 3 as SIO010.ZIP New in á0.11 An OS/2 bug caused crashes when SIO was used on a PS/2. That problem has been corrected in this version. Uploaded to CompuServe OS2USER, Library 3 as SIO011.ZIP. New in á0.15: Multiple comm ports sharing the same IRQ on PS/2s and some ISA cards should now work. Uploaded to CompuServe OS2USER, Library 3 as SIO015.ZIP. New in vá0.20: New DOS Setting "Virtualize_16550A_For_COM". If this setting is turned off, VSIO will create a virtual 16450. A bug where DTR could be dropped in DOS sessions was corrected. New in vá0.25: All of the DOS Settings are now prefixed with SIO_ in order to group them together. Hopefully, the requirement for some systems to place SIO/VSIO last in the CONFIG.SYS has been eliminated. This version (or later) must be used if you're running the OS/2 2.1 beta. New in vá0.26: A bug was introduced in v0.25 where many OS/2 programs could not drop DTR. This version (á0.26) corrects that problem. Address comments, suggestions, bug reports, etc. to Ray Gwinn in the SIO_BETA conference available at 1:106/2000... - Bob Juge