0.007 - dec 11th 2006
Got a HUGE amount of help from Ryan Geiss, who added all these goodies:
     	-settings are now remembered, session-to-session
     	-added a 'max throttle' option
     	-added a 'step throttle down' cpu utilization threshold
     	-systray icon is now animated & shows throttle amount in green
     	-clicking systray icon now brings window to foreground (left, right, or double-left-click)
	-protected vs. 2 instances of winThrottle running at the same time
	-minor tweaks to WM_POWERBROADCAST handling
	-cpu utilization readout no longer disappears periodically
	-cpu utilization readout is now also active when auto-throttle is off.
	-overhaul of the way throttle values are tracked;
	    slider & text throttle readout feel more solid now.
	-max throttle spin control now jumps in increments that actually reflect what levels your chipset can actually  throttle at.
	-seems to no longer crash after hibernation/standby, due to Jeff's awesome new driver  :)
	-added appropriate # of tic marks to throttle slider, to suggest the real values that are being used. (16 for Via, 8 otherwise)
	-simplified basic dialog; you have to check 'show settings' to see the complicated stuff.
	-at startup, if auto-throttle is on, it now gives you a
	  "minimizing in 3... 2... 1... seconds" text warning
	  so you're not wondering where the heck your window went.
	  If you click the warning text itself, or the "auto throttle"
	  checkbox, or the "show settings" checkbox, it will abort
	  the countdown.
	-fixed tab order of dialog controls




0.006 - july 24 2006
(ok this version was never technically released)

Finally got around to writing my own driver for winThrottle, so I can now dump giveio.sys.
while giveio.sys has been a godsend for ages, it is rather security vulnerable as it opens up ALL I/O ranges, even though this program only needs to hit 2 bytes of it.

No other changes were made other than supporting the new driver.


The driver is based on the generic port i/o driver from the NT DDK.  I'm not sure if I have the rights to release such source code, so if you want it, contact me and we'll make sure the right credentials are in order.


0.005 - may 12 2005

changed methodology of determining throttle amount again!
In previous versions, I (and others providing feedback to me) tended to set the CPU utilization check at 1 second intervals so that the machine was more responsive to spikes in CPU usage.  
It seemed logical then to simply hardcode the cpu utilization check to a 1 second interval, and change the "delay amount" value to determine the amount of time to wait after unthrottling before attempting to speed the machine back up.

After working with this new method for a day or so, I think it provides a fairly seamless background monitor of CPU usage.  It's responsive enough that the machine isn't sluggish during usage spikes coming out of throttle, and slows back down again after a period of calm.

Added a minimize icon->system tray as well.  Since throttle is designed to be a background thing, it shouldn't take up any toolbar space.  The mouseover pop-up text will tell you how much your machine is throttled without bringing it out of the system tray.

I tried to get the icon in the system tray to change depending on the throttle amount, but couldn't figure out how to do it.
Maybe next time.




0.004 - apr 25 2005

Added more command line support:
winThrottle 4
 or
winThrottle min=5 max=40 delay=2

the first method will simply jam the supplied value into the throttle mechanism and exit. (see version 0.002)

The 2nd method will allow you to fill in fields for the minimum and maximum CPU load thresholds and the amount of time for the polling interval.

No real checking is done on the command line, so be gentle with it.

Also changed the default speed-up routine.  Instead of gradualy speeding up the CPU when under a heavy load, it now jumps to full speed.  This allows a faster response time when a short spike is noticed in cpu loading, and makes the machine feel a little less sluggish when switching between low and high CPU loading tasks.  





0.003 - mar 29 2005
I'm on a roll!

Added support for auto throttling based on CPU utilization.
Pretty massive re-write of almost the entire app to support this new feature.
CPU load reporting code obtained from Dudi Avramov via the code project.
http://www.codeproject.com/system/cpuusage.asp





0.002 - Mar 28 2005 

Added support for VIA chipsets.  
Support is automagically detected by attempting to write to bit0 of the throttle duty cycle register.
If it's writable, it is assumed to be a VIA chipset and thus allows 6.25% steppings of throttle value.

Added support for command line parameter.  Upon invoking winThrottle, simply supplying a value between 0 and 15 will program that value into the throttle register.  0 is off, 15 is slowest.  





0.001 - Dec 17 2004 

initial build, not pretty but functional.  Supports all chipsets, however VIA chipsets are getting cheated and can only step throttle by 12.5% increments.


