After all these years of programming, I still wouldn’t know how to debug such a program. Credits to the author!
I used this page recently to fix the issue, very grateful to the author.
I had always thought this was the reason the LOOP instruction was slow on Athlon and later processors: that it was artificially slowed down to support old timing routines. After reading this SO post, however, I’m not so sure anymore.
What I learned from this article: the Win9x IDE driver is named ESDI_506, after two of IDE’s predecessors, ST-506 and ESDI.
Older versions of Turbo Pascal had the exact same problem – something in its standard library would busy-loop on startup to calibrate some delay function. So any binaries it built would be unusable on faster hardware.