I've made a program that I also want to be able to run in Windows and not just pure DOS. The problem is that the Delay() procedure isn't precise on fast machines, so the program runs way too fast. I've tried using alternatives to the standard Delay(), such as MilliDelay() found in the SDelay unit and the Wait() procedure, but it still runs too fast in WindowsXP. Why is that? The MilliDelay() procedure is supposed to be very precise... but it isn't in WindowsXP.
I've also used MoSlo to slow down the program. It does slow down the program enough for it to be usable, but the speed in the program isn't constant. As the program is a textmode arcade game, a constant speed is quite crucial -- otherwise it's pretty hard to control the game.