Previous Section | Table of Contents | Next Section |
During development and testing, some tips for using ONEFOSsil under Windows 3.11 and Windows 95 have been collected. Many thanks to those in FidoNet's WIN95 echo for suggesting these tips. These tips have not been tested under Windows 3.11, as it does not have all these options. These suggestions will reduce, if not entirely eliminate, CRC errors and increase performance. Also, these tips are not just for ONEFOSsil, but apply to almost all communications under Windows 95.
It was found during testing of ONEFOSsil that Windows 95's communications drivers have some bugs in how a 16450 UART is initialized. As such, if the first port accessed by a DOS application after Windows has been loaded is a 16450 UART port, it is likely that the application that uses the port will drop lots of characters, specially at higher speeds. This is not specific to ONEFOSsil as all DOS communications software were found to have the same problem. Generally, there are no problems if a 16550 UART port is accessed before a 16450 UART port is accessed. The problem also seems to disappear once the DOS window has been closed and re-opened.
One may find communications in Windows 95 to be very temperamental if an IRQ above 8 is used for a COM port IRQ (specifically IRQ 9/2). The conditions would come and go from reboot to reboot. Generally the UART's transmit interrupt would be disabled whenever a character was received, and could cause system locks. This was generally made even worse when combined with the above problem. The only solution is to try to keep COM ports using IRQ's lower than 8, specifically when the UART is a 16450. It has been heard that some people have also had trouble just with IRQ 9/2, no matter what kind of UART, so this problem may only be significant with IRQ 9/2.
The following tip was partially suggested by Bill Gaston on FidoNet's WIN95 echo. Most of the suggestion he posted as been complemented with the authors complete testing of the suggestion. As such, there have come to be some differences even between Bill's and the author's original publication of this tip.
Perform the following steps to improve DOS programs performance and reliability while running in Windows 95. This will generally eliminate all CRC errors and may solve some performance problems.
Open the Control Panel. Open the System properties. Select the Device Manager tab and expand the Ports branch.
Carry out the following steps on each COM port.
Select the port in question and press the Properties button. The properties on this page are only used as defaults for Windows programs; however, make sure everything is correct, such as the Flow Control setting should usually be set to Hardware. Press the Advanced... button. Press the Defaults button to set the FIFO values at 3 notches and 4 notches respectively. This works the best for most all systems, and appears to apply even to DOS applications. Press the OK button to return to the Properties tab and press the OK button there to return to the Device Manager.
Note: Some suggest (often) that the lower slider should be set at the middle notch. Read the message at the top of the properties tab. It reads that the right most notches provides better performance, and the left most notches are for solving communications problems. With 16550 UARTs, the right most notch of the lower slider is the best to use for highest performance.
Close the System Properties window to save the changes. Open the file \Windows\System.ini with an editor. Make the following changes to the [386Enh] section.
Remove or remark any "COMBoostTime=" statements. It was earlier suggested to add this statement, but the author has found that applications perform better without it.
Add or change the statement "MinTimeSlice=" to read "MinTimeSlice=30". This greatly improves the performance of BRE and other door games while they are in the background. Adversely, another alternative exists, and this has worked quite well on the author's system. Remove or remark the "MinTimeSlice=" statement and add or change the statement "WinTimeSlice=" to read "WinTimeSlice=100,100". This causes Windows to give the task in the foreground only as much time as the tasks in the background get.
Add or change the statements "COMxBuffer=y" for each COM port used by DOS applications. The value y is the amount of buffer space to be reserved for COMx. Ideally, a value larger than ONEFOSsil's B=,read value should be used. This will greatly improve performance and reliability of DOS applications. Common settings are between 1024 and 10240. 1024 may work for most people, and will surely improve performance, but some systems may need 10240. The author has seen very few systems that didn't need any change in the buffers.
Save the file, close, and restart Windows. If there continue to be problems with CRC errors or dropped characters, increase the buffers, or reduce the top slider in the advanced port settings page by one notch. If you have problems with slow transmit speeds, try adjusting the "MinTimeSlice=" statement or adding and adjusting a "COMBoostTime=" statement.
On the ONEFOSsil command line, the FIFO settings can be set to F=16,4 to provide better results on 16550 UARTS. This sets the FIFO's to maximum for both transmit and receive FIFO's. Since Windows 95 always uses its FIFO settings, ONEFOSsil's FIFO settings will only be used for transferring data from the Windows VCOMM buffer to ONEFOSsil's buffer, and by transferring more characters at a time the performance generally increases.
It is also suggested to run the UART at as high of a speed as can be supported by the modem. This increases performance specially with error correcting and data compression modem protocols. Most 28,800bps modems support 115,200bps while most 14,400bps modems support 57,600bps.
Just to note, these settings have completely eliminated CRC errors on the author's 4 megabyte system on all 16550 UART ports. Ports using 16450 UARTs seldom produce CRC errors even running at 38400bps (direct link between computers).
Previous Section | Table of Contents | Next Section |
![]() |
To the ONEFOSsil Documentation: Contents page. |
![]() |
To the ONEFOSsil Home Page. |
![]() |
To the Morris Softronics Home Page. |
![]() |
This time-stamp last updated on Sunday, September 15, 1996 at 17:18 CDT (UTC -0500). |
![]() |
Are there problems with these pages? Contact the WebMaster to report them! |