Hi Terry
I still can't find where that was in the manual, although I seem to have a vague memory of seeing it once. Oh Well.
Interesting discovery: the values are persistent. So missing out on one parameter in a call can give variable results.
Using your example:
M123 P1 Q2 R3 gives the expected 1,2,3 reply.
M123 P4 may give 4,-1,0 if it is the first call, or sometimes 4,-1,-1, but if it follows the previous example you get 4,2,3 . This can be problematic.
I tried using isnull(), but once the variable has been used once it is no longer null. So far I can see no way of releasing a variable name after use.
Cheers, and thanks
Roger