ThermoProtect
Update
(Version 1.10)

The OS/2 freeware ThermoProtect is just updated to version 1.10 and the author, David Wei , has been uploaded it (tp-110.zip, 38Kb) on Hobbes.

Program Function : Monitor system temperature, fan speed, and voltage.

Software Requirements: OS/2 Warp 3.0 or OS/2 Warp 4.0 (runs fine onany language version).

Hardware Requirements:
A system that can run OS/2 and that comes with a Winbond W83781D, National Semiconductor LM78, or compatible hardware-monitoring chip.

New Version Highlights :

*ThermoAlarm did not indicate which input was being guarded, thus sometimes when a bad parameter is entered, there could be some "unprotected" inputs. Now all the guarded input will have a '*' symble at the end of the line, so it will be easy to tell if you missed anything or not.

[Below comes from V1.09, repeated because V1.09's news is likely to be deleted due to the short time between V1.09 and V1.10 :) ]

*NEW! ThermoAlarm, now ThermoProtect warns you with graphical and audio warning when fans' speed and/or temperatures are exceeding the preset tolerance. And it will PINPOINT *WHICH ONE* is going wrong.

*COMMAND LINE PARAMETER IS NOW CHANGED, PREVIOUS USER

PLEASE READ THE COMMAND LINE PARAMETER SECTION!!*


*All setup via command line, for maintance free installation.


Requests!


If anyone has access to Winbond's W83782D chip's datasheet, please contact me, I'm trying to make ThermoProtect compatible with the W83782D chip.


Error/Bug Reports:


If this program is giving you a Vendor ID but saying that it can't identify the chip... please do the following...

*MAKE SURE you do have a enviromental monitoring chip of some kind.

*Check if the output from ThermoProtect is making sense or not (ie +5V entry showing +8V is NOT making sense... :) )

*Check your motherboard manual and record down the model and the make of the monitoring chip.

The soft, by the Author

I wrote ThermoProtect because at the time, most enviromental- monitoring software does not support OS/2 and what OS/2 enviromental-monitoring software there is does not properly support the Winbond W83781D monitoring chip.

I use an EPoX MPV3E-M ATX motherboard in my machine, which has an integral Winbond W83781D monitoring chip. One very strange thing about that motherboard is the monitor-chip wiring, which is connected in such way that only the second and third temperature inputs are used. Thus NO monitoring software supporting the National Semiconductor LM78 can properly display the temperature. It was that shortcoming that started me on the path to ThermoProtect.

Features:
=========

* Support all monitoring function of Winbond 83781D System Health
Monitoring chip.

* Support all monitoring function of LM78/LM79 System Health Monitoring
chip.

* *NEW* ThermoAlarm feature is now available, it raises both audiable
and visual warning when fans and/or temperature inputs are outside
of the specified safty limit. (Try it out by purposely setting the
value to trip the alarm, and get familiar with the warning signal :) )

* ALL user inputs for the program are obtained from the command line
parameter, making ThermoProtect suitable for automatic spawning.
(In the start up folder, for example... :) )

* Ultra-low system resource useage/reuqirement.

* Dual-Language support, with display routines designed for easy
addition of more languages.

* Automatic or manual Code-Page switching: ThermoProtect will detect
which Code Page your system is using and display accordingly, or you
can use a command-line parameter to force a specific Code Page.
(At present, only Code Pages 850 (U.S.) and 950 (Taiwan) are
supported; for any other detected Code Page, ThermProtect will
default to Code Page 850.)

Installation:
=============

Simply unzip ThermoProtect to any directory you like, and that's all you
need to do to install ThermoProtect! No reboots, no DLLs and no CONFIG.SYS update needed!

Quick Start:
============

ThermoProtect couldn't be simpler to use: just run ENVIRO.EXE. There
is a command-line parameter for manual Code-Page switching but for
most users it is not needed. If you are using a Code Page other than
850 or 950 (the currently supported ones), don't worry--ThermoProtect
will default to the US-English (850) Code Page for its display, which
will be satisfactory for most users.

Please note that when you use ThermoProtect WITHOUT any watchdog
parameters, it will cause the ThermoProtect to run in the standard "spectator" mode.

As for the user interface, there really isn't one. When you want to exit ThermoProtect, just press *any* key and the program will quit.

While running, ThermoProtect updates its information every 1.0 second,
but uses very little system resource: I could not see any impact at
all on my CPU-monitoring program from running it. ThermoProtect can
currently read output from Winbond W83781D and National Semiconductor
LM78/LM79 monitoring chips. (ThermoProtect is still under
development, and so currently uses a text-mode display.)

Command Line Parameters:
========================

Notes:
------

All parameters are optional; none are required. In particular, note that ThermoProtect will automatically detect your system Code Page and, if it is 950 or 850, use that same Page; if it is anything else, ThermoProtect will default to 850. Use the Code-Page parameter only if you want to force use of 850 or 950 for the display instead of that automatic choice. **However**, ThermoAlarm feature itself requires the command line parameter to be activated.

ThermoProtect uses CmdLin2 Command Line Parameter Processor for
processing command line parameters, and there are general rules it
require for the command line parameters.

***WARNING!*** All INVALID ENTIRES ARE AUTOMATICALLY REJECTED WITHOUT
FURTHER NOTICE!!!

#1 Users can start a parameter with "/", "-" or no symbole at all,
for examples, parameter Fan1 can be entered as:

/Fan1
-Fan1
Fan1
All three examples above are perfectly valid.

#2 A colon may be used instead of the equals sign in any parameter
setting.

/Fan1=8000
/Fan1:8000
Both examples above are perfectly valid.

#3 The command line is NOT case-sensitive.

#4 The simpliest rule of all, THERE MUST BE AT LEAST ONE SPACE
BETWEEN ALL PARAMETERS! For example :

/Fan1=2313 /Temp1:55
The above example is valid

/Fan1=2313/Temp1:55
The above example is NOT VALID.

That's all the rules there is. :)

Usage:
------

Enviro [parameter] [parameter] [parameter] ...

where allowed parameter syntax is--

/FanX=Y sets the minimum fan RPM limit for fan-monitor channel X
where X can be 1, 2, or 3; where Y equal to the RPM limit.

/TempX=Y sets the maximum temperature limit for temp-monitor channel X
where X can be 1, 2, or 3; where Y equal to temperature limit.

/Code=X forces use of Code Page X
where X can be 850 (U.S. English) or 950 (Big-5-coded
Traditional Chinese).

Example:
--------

The sample line below would set Code Page 950, a Fan #1 lower limit of
5000 RPM, a Fan #2 lower limit of 3500 RPM, and a Temperature Probe #1
max limit of 50C--

Eviro /Code:950 /FAN1:5000 /Fan2=3500 /tEMP:50

Data Displayed:
===============

#1 ThermoAlarm (Indicating if any of the ThermoAlarm is active or not)
#2 Fan #1 RPM
#3 Fan #2 RPM
#4 Fan #3 RPM (or, for dual-CPU machines, 2nd Power Fan)
#5 1st Temperature Probe
#6 2nd Temperature Probe (N/A on LM78 systems)
#7 3rd Temperature Probe (N/A on LM78 systems)
#8 1st CPU Core Voltage
#9 2nd CPU Core Voltage (for dual CPUs; on a single-CPU machine, this
value will be the same as the 1st CPU Core Voltage reading)
#10 3.3V 5V 12V -5V and -12V

PLEASE NOTE! The precision of the voltage-reading displays is greater
than the actual accuracy of those readings. That high-precision presentation allows small changes in voltage to be noticeable; that is, even when the absolute value of the readings is not so exact as the display, changes in the display correctly reflect changes in the voltages, allowing you to spot potential trouble (sagging voltage levels) at a very early stage. Note that most monitoring chips' readings are, by spec, plus or minus about 1%, so assume changes of that magnitude to be "noise" in the readings; greater changes very likely have significance and should be addressed by you in some way.

Wish List:
==========

*Winbond W83782D support, tho a superset to the W83781D supported,
some "bit order" are different and thus currently not supported. I'm working to get the data sheet needed to program support, however, the data sheet is currently not available on the web.

*LM75 and LM80 style support. (those use the I2C/SMBus which makes
the information a little harder to get at than it normally would be since I'm not sure which port it's located at--but after a healthy/unhealthy dose of Intel Data Sheet, I should know.) :)

*ATX Shutdown for system-wide failure when no manual shutdown occurs
within a safe time period.

*PM Interface (on the back burner :) )

Acknowledgements:
=================

My thanks to all of these people: (In chronological order)

The Virtual Pascal/2 programming team and fPrint, for creating a compiler of my favorite computer language on my favourite OS.

Christoph Bratschi and Bj›rn Mork provided the program code from which I learned hardware access in Virtual Pascal. Without their work, this program would have taken a whole lot longer to create.

Kevin Wu at EPoX, who provided me tips on how to set the Bank-Select
register properly (the Winbond datasheet doesn't express it properly)
and with whose help the Bank-Select bug was fixed in only a few
minutes. Without his tip, I'd never have been able to program
ThermoProtect to read the two extra temperature inputs of the W83781D
chip.

Klaus Staedtler (stadt@ibm.net) for making a cute icon for my program,
and for providing a PROFESSIONAL looking icon for Version 1.09 and on.

Eric Walker (ewalker@highboskage.com) for making my English document
vastly more pleasent to read. :) And less confusing too... :) And thanks to him that now my On-Line help is vastly improved from the
original.

Amigo Chan (amigoccs@tpts4.seed.net.tw) for making my Chinese document
vastly more readable.

Konzmann@swol.de for finding that detection bug that shows up on some
motherboards (some Asus boards does this, but it should not be limited
to Asus only).

Okay, that's all for my primitive docfile; have fun with my program,
and PLEASE e-mail your comments to me.



CONTACT AUTHOR

David Wei
E-Mail Address: davidwei@cybermail.net

@Macarlo, Inc.
@Macarlo's Shareware & Web
OS/2
Java Lobby Member
Java Site Accredited

[TOP] [HOME] [INDEX]