home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: SysTools
/
SysTools.zip
/
tp-134.zip
/
Enviro.HST
< prev
next >
Wrap
Text File
|
2000-05-24
|
23KB
|
566 lines
LM78/Winbond Enviromental Monitor: Development History
======================================================
Legend:
-------
! = bug-fix related information
* = new feature/addition
@ = change of sorts
Version Information:
V1.00 = Build 000
V1.01 = Build 001 and so on...
Version 1.00 (Sept. 6th, 1998)
------------------------------
For internal testing only.
*Based almost completely on the VPascal V2.0 beta 2 code of Christoph
Bratschi and Bj¢rn Mork's.
Version 1.01 (Sept. 10th, 1998)
-------------------------------
For internal testing only.
*Major overhaul of the library functions and the main program; name
changes; and most calculation code moved into the library to reduce
hard-to-read code in the main program and achieve what I call DDOR
(Direct Data Output Routines). Aha! One more useless acronym! :)
*Added Bank-Switching support for Winbond W83781D.
*Added CPU Temperature Monitoring for Winbond W83781D.
Version 1.02 (Sept. 13th, 1998)
-------------------------------
For internal testing only.
!BILLIONS of THANKS to Kevin Wu of EPoX: with his single e-mail
answer and a few minutes of compile and recompile I managed to get
the Bank-Switching support for Winbond W83781D into perfect working
condition.
!Library functions will now REALLY clean up after themselves, so the
next time another program access the chip it will not be accessing a
complete mess that gives really weird results or sometimes just plays
dead. :)
*If any other program that accesses the monitoring chip, and kind of
messes it up, Thermoprotect will reset the chip to its original
power-on default state.
Version 1.03 (Oct. 15th, 1998)
------------------------------
!Occasionally the enviromental-monitoring chip (in my case the Winbond
W83781D) would give 1 as the time it took the fan for one revolution,
which in my case, caused the program to report a fan speed of 675,000
RPM--if that's true, I think I'm gonna run away from my computer VERY
QUICKLY. :) The program now performs a second check to see if
anything seems wrong with the RPMs and, if so, the reported RPM will
be 0 instead of some insanely high number.
!Bug Warning, it seems that after the Bank-Switching support was added
the LM78 chip took it personally and doesn't wanna work. A fix for
this is coming soon, so don't worry. In the meantime, if you use
this program on LM78 chips you may get really weird readings. :)
Version 1.04 (Oct. 16th, 1998)
------------------------------
For internal testing only.
!Found another bug regarding the display of fan speed... now instead of
the insanely high RPM, it gives me a couple 2 RPM reading after about
24 hrs of use... Added code to aid the detection of this bug. Not
useful for general public, thus not released.
Version 1.05 (Dec. 1st, 1998)
-----------------------------
!LM78 incompatibility fixed, now it will disable Bank-Switching upon
detecting LM78 or LM78-J
*Now ThermoProtect will tell you what enviromental chip you have,
in somewhat plain English... :) Instead of code only, it will give
you both the Chip_ID number and their name. I only have data for
Winbond's W83781D and National Semiconductor's LM78/LM78-J. So
let me know if the program worked on your computer but is telling
you that it can't figure out what chip it is.
*Newly revised English document, thanks to Eric Walker
(ewalker@highboskage.com) for his effort. I hope those English docs
are easier on your eyes now... :)
*Now ThermoProtect have a Cute-O Icon, made by Klaus Staedtler
(stadt@ibm.net), I hope that ThermoProtect will now look nice and
fitting on your desktop.
Version 1.06 (Dec. 5th, 1998)
-----------------------------
!ThermoProtect is now about 2x as big as before, but fear not...
The increase in size is mainly due to the additional text required
for both English and Chinese display to fit in one program. It
should actually be a little faster now, but uses about 10KB more
memory (as if you are gonna see any difference in system resource
useage :) ).
*Some routines in the library is now somewhat optimized, should have
a tad bit lower CPU requirement. Since ThermoProtect already uses
so little, the result will be hard to see.
*Now ThermoProtect comes in ONE single file for both Chinese and
English version. This is a complete overhaul of the display routines,
and will allow easier program maintance and easier to add support
for other languages. ThermoProtect will automatically ID the code
page that it is under, or you can override the detection with command
line parameter.
*LM79 Identification code added, not that earlier ThermoProtect would
have any problem using LM79, but I figured it would be nice to have
ThermoProtect correctly ID the chip.
*Newly revised Chinese document, thanks to Amigo Chan
(amigoccs@tpts4.seed.net.tw) for going through my PITA of a doc. :)
Version V1.07 (Dec. 11th, 1998)
-------------------------------
!LM78 Detection routine will be triggered on some system with Winbond
W83781D chipset, causing the user to lose 2 of the thermal probe input.
The library is now updated and should be able to detect the proper chip.
(Thanks to Konzmann@swol.de for pointing this bug out...)
@Removed some useless lines of code from the library, those were intended
for some features that had been abandoned because of that I found better
ways of doing some of the stuff. Should be just a tiny bit faster... :)
Version V1.08 (Dec. 11th, 1998)
-------------------------------
@Added 500ms delay after the chip's initialization code, hopefully this
will clear up some abnormal reading that some people might have.
(Added Dec, 19, 1998)
User had confirmed that the bug was fixed by this measure.
Version V1.09 (Dec. 19th, 1998)
-------------------------------
*NEW ThermoAlarm feature in ThermoProtect, now the word "Protect" in the
name "ThermoProtect" is at least somewhat justified! :) TP will monitor
specified values (fans' speed and temperatures) and warn you if anything
goes wrong with both graphical and audio warnings.
@Command line parameter is now handled by the Public Domain program CmdLin,
CmdLin is a "Command Line Parameter Processor" designed for ease of use.
However, some of the feature were rather limited, but I've found that
CmdLin is built on fairly solid and good foundations. So I decided to
improve it a bit. I had NO IDEA it could take me that long to just change
a few things... :) But after the modification, the unit is no longer
100% compatible with the original (different style of parameter input),
and I do not know of any way to remain compatible while keeping the long
flag feature. So, as a token of thanks to people who had worked on
CmdLin, I've decided to release my version as CmdLin2, which means that
it is quite a bit different from the original in a few areas. CmdLin2.Pas
will be available in source code form, send E-Mail for requesting that
file.
@Different command line Parameter style, now it requires /Code: or /Code=
before entering the code page value.
@Getting rid of more garbage in my code, it should be pretty clean now,
@A major revision of the document, thanks to Eric Walker for proof reading
so much of my lousy writing.
@A few lines on the display is now changed to be more generic, to fit a
broader spectrum of motherboard configuration.
Version V1.10 (Dec. 20th, 1998)
-------------------------------
*ThermoAlarm did not indicate which input was being guarded, thus
sometimes a bad parameter could cause some "unprotected" inputs.
Now all of the guarded input will have a '*' symbole at the end of
the line, so it will be easy to tell if you missed anything or not.
Version V1.11 (Dec. 20th, 1998)
-------------------------------
For internal testing only.
*Reduced the amount of branches during the executing loop, should
use a few bytes more memory space, but should at least be 10% faster.
(Removing 6 branches)
Version V1.12 (Jan. 10th, 1999)
-------------------------------
*The "Traditional" Beep warning have been replaced, because the
warning beep is too easily disabled by setting the system sound's
warning beep to Disabled status... Now I use the OS/2 API DOSBeep
to provide warning sound that is highly unlikely to be disabled by
other programs/settings. And while I'm at that, I also give the
program two distinct warning sound so you can tell either it is
the temperature or the fan's going wrong.
*Different Chip numbering scheme is in place, now I'm assigning
chip numbers to each chip myself, because different vendors
with different chip numbers are making it difficult for me to use
their own chip/vendor number.
They are assigned in the following fashion:
1: Winbond W83781D.
2: Winbond W83782D.
99: Unknown Winbond Enviromental Monitor.
101: National Semiconductor LM78.
102: National Semiconductor LM78-J.
102: National Semiconductor LM79.
!The first temperature probe's warning sound was missed in the
earlier versions, now it is fixed.
Version V1.13 (Jan. 18th, 1999)
-------------------------------
Okay, okay, V1.12 wasn't the last text mode version... :)
V1.13 is reserved for internal testing and limited distribution.
(Read: Sent to ONE person :) )
*This version adds the ability to output to file, this feature
does not allow custom file name at this time.
!Fixed bug in Chip_ID routine, should work without problem now.
Version V1.14 (Jan. 23th, 1999)
-------------------------------
Private Beta, not released to public.
*False ThermoAlarm rejection added, Winbond's chip may sometimes give
you 0 RPM for fan speed, this problem with the hardware has been fixed
by ThermoProtect's internal false alarm rejection system. I'm surprised
no one had mentioned about this problem but it seems that some chips
would give a fluke value once in a while (seems like I'm reading the
chip while it is updating the variables.).
@Now using CmdLin3 command line parameter processor, joint effort
between Jim Walsh, Kevin McCoy and ME! :)
!The command line input for Fan #3's ThermoAlarm feature is now
corrected. Now incorrect command line input to ThermoAlarm will
be detected properly.
!ThermoAlarm might indicated some input are protected even when
they are NOT PROTECTED. This bug has been corrected.
Version V1.15 (Jan. 30th, 1999)
-------------------------------
Private Beta.
!Chip detection bug fixed, now it should be able to accurately
identify all known chips.
Version V1.16 (Feb. 20th, 1999)
-------------------------------
Private Beta
*ThermoProtect is the FIRST (AFAIK) enviromental monitor
that FULLY SUPPORTS Winbond W83782D's output feature! Other
programs might be compatible with it, but they do not exploit
the extra features that it provides! Yeah, one more thing to brag
about... <GR&D> ThermoProtect can now provide you with information
about information on your system's CMOS battery, helping you to
identify mysterious CMOS setting loss.
Version V1.17 (Feb. 20th, 1999)
-------------------------------
Since ThermoProtect is built with easy to upgrade code, I've decided
to add support for additional hardware to the program first, instead
of making the GUI version. And fear not, all the work done here will
be translated to an even better GUI version... <VBG>
!Bug fix, ThermoProtect may not write the proper value into the
lowest fan speed variable when it drops to zero or non existent...
!Numerious bugfix related to the newer CmdLin3's value extraction
problems.
Version V1.18 (Mar. 12th, 1999)
-------------------------------
Sorry, I claimed ThermoProtect to be capable of reading all inputs of
Winbond chip, I was wrong... Before V1.18, ThermoProtect was not able
to read the case intrusion trigger... But now that feature had been
added!!! :)
*Case introusion detection, I use the plain Boolean output of True and
False to reduce the extra code and possibly speed it up a tiny bit...
:)
*Now added a small .CMD script to add timed execution and file rename
ability to ThermoProtect.
!ThermoProtect used to read all those ultra-high temperatures... Well,
I was wrong with those numbers, it actually was a signed 8bit integer.
And now that's been corrected. It should now show negtive numbers
where needed.
Version V1.19 (Mar. 13th, 1999)
-------------------------------
!Bug fix for fan's lowest speed register, now it will correctly show the
lowest speed when the ThermoAlarm is triggered. Instead of displaying
0RPM for lowest fan speed.
Version V1.20 (Mar. 16th, 1999)
-------------------------------
@ThermoProtect now will not output a single byte of text to the screen
when running in the /file mode, this is to clear up the screen and save
a bit or two of resource... :) And as well, the initializing time have
been cut by 3/4. :)
!The file output option was originally implemented as a stop-gap measure,
thus the text output wasn't quite 100% standard. Now it should conform
to the stadnard with CR, EOL and EOF charactors in the proper places.
!Spelling mistake on the display screen... :)
Version V1.21 (Date forgotten :) )
----------------------------------
Internal testing only, not released.
!Sometimes the "*" mark indicating ThermoAlarm will sorta double, this has
been fixed.
Version V1.22 (Date forgotten as well... :) )
---------------------------------------------
Internal testing only, not released.
@Modification to see if code change are required to use W83782D to read
PII/Cleron/PIII's on die thermal diode. The result? I was surprised as
well... NO EFFECT... Weird, hum? :)
Version V1.23 (May 27th, 1999)
------------------------------
Internal testing only, not released.
!Remember that W83782D users often sees WEIRD voltage in place of their
-12V and -5V? Well, guess what? Winbond decided to get cute on us, and
changed the way that the value is calculated... Now ThermoProtect will
automatically detect which formula should be used.
Version V1.24 (May 30th, 1999)
------------------------------
Internal testing only, not released.
@Experiment with Named Pipe data transfer to make ThermoProtect more
versitle. Experiment failed but what I learned helped me greatly on
the next version.
Version V1.25 (Jun. 4th, 1999)
------------------------------
First almost-GUI version!!! Yipee!!!
*Now Named Pipe works PERFECTLY!!! A copy of pre-configured SysBar/2's
Pipe Monitor is bundled with ThermoProtect, it will give ThermoProtect an
ELEGENT GUI interface, for only about 100 lines of code on my part. :)
The Named Pipe will work with your own program as well, see doc for detail.
Millions of Thanks to Dmitry I. Platonoff, the author of SysBar/2 for
creating SysBar/2 AND for allowing me to bundle a copy of Pipe Monitor
with ThermoProtect.
*Now Winbond W83782D's Stand By Voltage monitoring is supported. If I
missed some monitoring feature of all those chips that I supported, please
remind me. :)
Version V1.26 (Jun. 8th, 1999)
------------------------------
!Fixes some cosmetic problem when using ThermoProtect with W83782D under
Chinese mode.
@Improved document on using the bundled Pipe Monitor with ThermoProtect's
pipe mode.
@Improved Named Pipe program expamle and explanation.
Version V1.27 (Aug. 14th, 1999)
-------------------------------
!*@The removal of command line parameter function and replacing it with
my own in-house configuration file subroutines. After some cola and
lots of curses (I was cursing my computer... :) ), it seems to be working
quite well. For V1.27, you will have to manually edit the config file,
and V1.28 and on should come with a small utility that does it for you.
Version V1.28 (Aug. 19th, 1999)
-------------------------------
*Now ThermoProtect allows you to modify the time delay that is inserted
into the loop, from 1 second to 30 seconds, in millisecond resolution. :)
I personally don't have much use for this, but some people might.
*EnvSetup.EXE was created to aid you in editing enviro.cfg, it would allow
you to easily edit the Envrio.cfg file without worries of damaging it.
Since I was trying to develop this program as fast as I could, some numerical
and alphanumerical input are not completely idiot proof... So don't try to
enter funny stuff in just yet. :)
@Some people complained about the pipe opening failure warnings showing up,
so I removed them. Not a big change.
Version V1.29 (Sep. 11th, 1999)
-------------------------------
*Now ThermoProtect allows you to add temperature modifier to any or all of
the thermal probes. Some user requested this because BIOS in motherboards
like Asus P5A add a few degrees to the actual reading to "compensate"
for the distance between the thermal probe and CPU. Only zero or positive
values are accepted, negtive value are automatically changed to zero instead.
Negtive value are rejected because it have the potenical of becoming a tool
for people to play jokes on another for them to think the temperature of the
CPU is remarkably low, while the CPU is actually overheating. So negtive value
are substitued by zero automatically.
*Now EnvSetup.EXE allows temperature of in both Celsius and Fahrenheit, the
Fahrenheit input are automatically converted to Celsius due to the fact that
Celsius standard is what Winbond/National Semiconductor designed their chip
to output. Not to mention this author is incapable of thinking in terms of
Fahrenheit. :)
Version V1.30 (Sep. 28th, 1999)
-------------------------------
@First of all, a terrible earthquake struck the mid section of Taiwan. I'd
like to thank all those people who had or at least tried to help in this
incident. To all those rescue teams, be it local or foreign; who have braved
the danger just to save one more life. THANK YOU. The people of Taiwan will
always remember this. As for China, the action they have taken is most
regrettable, not only they didn't help the matter, but they were casuing
extra delays and troubles to those who like to help Taiwan out. That I
believe, will also be remembered by the people of Taiwan.
I would like to ask the users of this program to see if it is possible for
you to donate some money for Taiwan's earthquake relief fund. If you cannot,
that's okay, at least pray for their safty and speedy return to normal life.
(And no, I don't care what religion you believe in.)
You may donate to:
Custody Account,
Ministry of the Interior, ROC
The International Commercial Bank of China
ICBCTWTP007
00709085418
or
The Red Cross Society of the ROC National Headquarter
Hua Nan Commercial Bank
HNBKTWTP121
102510021999
Thank you, from the deepest part of my heart.
!Okay, back to ThermoProtect. Now ThermoProtect is fully compatible with LM79,
I thought it was, but some of the code messes up LM79, now it is fixed...
Thanks to Bob Babcock for finding it out.
!EnvSetup.EXE user interface bug fix, now allows smoother operation.
@Now default delay is changed to 1.6 second, the lowest delay value is still
1 second. If you do not delete your enviro.cfg file, it will stay where you
set it at.
Version V1.31 (Oct. 3rd, 1999)
------------------------------
*Now ThermoAlarm feature have been expanded to cover PipeMonitor operating
mode. You can now have the comfort and efficiency of SysBar/2's unique GUI,
as well as the peace of mind provided by ThermoAlarm.
!A bug that will show all the fans are monitored even when it is not, is now
fixed. Came as a surprise to me that no one noticed it as well. :)
Version V1.32 (May. 16th, 2000)
------------------------------
*Now ThermoProtect will show thermal sensor #2 and #3 with slightly better
detail, as it now increments in steps of 0.5C instead of 1.0C. Both I/O
core and the shell are modified to add this feature.
@Voltage output to both named pipes and file will have fixed decimal point,
it will show 3 digits after the decimal point, regardless if the last one
or two digits are zero or not. This makes the named pipe output seems neater.
Version V1.33 (May. 16th, 2000)
------------------------------
*Due to the last Peltier/Water Cooling disaster that I have here. (The SETI@Home
ran out of things to do, and the Peltier/Water Cooling managed to lower the CPU's
temperature below freezing point. When SETI@Home finally got something to do, it
melted the ice formed on the CPU, which then caused a short... Good thing that
it does not appear to have done real damage.) I decided that I need to have a small
program that can create CPU load to heat up the CPU to prevent the CPU going below
a pre-defined temperature limit. Thus Temperature Watch function was created.
It runs a small timed loop that does intensive float point and integer calculation,
which will heat up the CPU quite nicely.
*EnvSetup.exe now have 2 pages for the main menu, because there's too much feature
to fit in one page. :)
Version V1.34 (May. 23th, 2000)
------------------------------
*Because the ThermoProtect's heating code does not work to my satisfaction, so I
started by putting the heating code in a thread of its own. Now ThermoProtect's
main program will start and stop the heating thread on command, no longer would a
timed loop be needed in for heating purposes, ThermoProtect will heat the CPU to
just over the prescribed temperature and stop right there. Because now the
heating code is in a different thread, it is a lot easier to show visual
indication that the heating thread is activated. (Yellow text and red background
in text mode, or "H" showing up in named pipe mode) Not only this, but I have set
the heating thread to Idle Priority, Delta 1. This makes the system work smooth
as silk even when the heating function is activated, unlike what ThermoProtect
V1.33 does. (Well, it was a quick hack. :) ) I set the Delta to 1 because most
CPU "sucker" program (RC5/DES, SETI@Home, prime number finder and whatever else)
usually have their delta set to 0, and if anything goes wrong with them, I would
want my heating thread to be able to outclass them in the priority ranking, so
that it can work properly.
Yipee! This is my first multi-threaded (or should I say, DUAL THREADED?) program,
and it is also my first program that actually NEEDS to have more than one thread.
:)
[end]