On Thu, Apr 02, 2009 at 08:13:42PM +0100, alan battersby wrote:
> My question is,  are variables #1 etc also global in the sense that if I
> set #1= 99 before the call is its value pushed on some stack and
> retrieved again after the call or is the value just overwritten by the
> parameter value of zero?
> So
> #1 = 99
> O1000 call [0] ...
> what is the value of #1 here after the sub 0 or 99 ?

It is the old value.  Otherwise, the flowsnake recursion example
wouldn't work.  This also gets specific mention in the documentation:
    http://linuxcnc.org/docs/devel/html/gcode_main.html#r3_1

> Also if I set the value of #1 before the call and then make the call
> with no parameters will the subroutine see the value I set?
> 
> #1 = 99
> O1000 call
> ...
> ..
> O1000 (this is the sub)
>     is the value of #1 99 here or is it undefined?
> O1000 endsub

I would treat the value as undefined.  I don't see that the
documentation specifies one way or another.

I looked at the implementation, and I see that local parameters that are
not specified on O-call are set to zero.

> So do gcode variables behave exactly like variables in a programming
> language such as C# etc or is there some difference?

I would be wary of drawing too many inferences about gcode parameters
from the behavior of other programming languages.

Jeff

------------------------------------------------------------------------------
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to