I never did come up with a clean way to prevent breaks in Mach3's pulsing engine which force speed-independent stalls during execution.
I've seen this far too often- the code glitches at some random point, well, not random, it always does it at exactly the same point every time. Making superficial changes in the code make it go away or appear elsewhere. It seems to be related to the use of math, subroutines, or citing # variables; I'm really not sure. I write a lot of this sort of code and this sort of thing shows up, but it's not tied to any one line.
Please don't get into "you need to set acceleration or speed lower" or "you need to oil your mill". These are absolutely not the case and ruled out long ago; it's an inherent bug in Mach3's pulsing engine. The speed and acceleration can be set absurdly low and will still stall at exactly the same spot in the code. You can physically move the axes and it'll stop on the same line of the code, not a physical spot on the axis.
It will do the same thing whether you use the parallel port or SmoothStepper.
I updated to R3.043.022, was surprised to see it's still there. Stalls in the same place.