The final word on this is that it doesn't work. The M code calls will not pass any variables or call a subprogram. The work around for passing variables is something like this.
G103P1 //look ahead off
G10.1 P1000 K#100 // Passes the value of #100 to P1000
M06 //P1000 is available for use in the M06 code