A lot of old DOS programmers tried to cheat the system by doing direct calls to hardware instead of using the proper DOS calls. They were trying to eek out every last bit of speed. Newer Windows versions simply don't allow that kind of brash behavior and won't run some of those ill-behaved programs. Games were the most notorius but some commercial programming was also guilty. I've also run across a few that used the processor clock rather than the real-time clock. Interesting things happen when you run one of those designed for a 10 Mhz processor on a gigaHertz class unit.