Hi,
I believe that you have found a Mach v3 bug - at least it sounds to me like the same bug I reported a while back.
I don't know what version of mach this bug appeared in - what version were you running before you installed 0.38?
I'd like to narrow down the versions with this bug. I know it happens on 036 also.
I reported this bug to Brian on 1-17-2010.
Here is what I deduced and the work around that I used.
The problem is that DoOEMButton(1000) is NOT the same as a button that is mach function 0 (cycle start).
Button function 0 sets the flag that tells mach to continue after a tool change.
DoOEMButton(1000) does not set the flag and Mach requires an actual function-0 button press after M6end returns before it will continue the gcode.
During a tool change, mach tells the user to "press cycle start after tool change" -
It appears that mach is being very literal with this message....
If the user presses a button that has mach Function 0 assigned to the button, an internal mach flag is set that tells mach to continue running the Gcode file when M6End returns to mach.
However, if a button is pressed that does DoOEMButton(1000) - which is the number for the cycle start function, the internal flag is NOT set.
The result is that when M6end returns to mach, mach does NOT continue running the gcode - until a function-0 button is pressed by the user.
WORK AROUND: change the code to DoButton(0) instead of DoOEMButton(1000) - now it works correctly.
The down side of the work around is that the DoButton calls are deprecated and will go away in mach v4 - but this gets things running again until the bug is fixed.
Dave