We have some older programs (no source code anymore) that run too fast on CPUs with faster clock speeds. I'm guessing that they were written using software delays ('X' number of CPU instructions per loop) - instead of sleeps and hardware timers. On new PCs, these apps no longer wait long enough for events to occur; so they no longer work. We can't change the applications - so we're trying to figure out how to make them believe that they are running at a slower clock speed.
I've written an app that eats-up processor time on a PC... effectively slowing it down enough for these old apps to run. But that "solution" affects all programs on the PC - (and user interaction, etc.).
I've found a couple of "program slow-down" products that are able to target individual executables - (Mo'Slo and Asoftech Speeder). They do NOT affect the overall system - just the individually targeted applications. In fact, each application can see a different clock speed. But it is cost prohibitive to purchase enough seats of those products for the number of users that we have.
(FYI... Gamers use these products to slow down clock speeds for older games so they will run correctly on new, faster processors).
I'm wondering if anyone can explain how these products are able to affect the clock speeds that individual applications see?
It would be best to always tell an application that it sees an absolute clock speed of 'N' - (run App1 at 'N' MHz). But it would also be usable if all that we can do is tell an app that it sees 'N'% of clock speed of host PC - (run App2 at 30% of host clock speed).
I can code it if I can figure out how it is done.