Hi,
I think in this case the standard is whatever Fanuc says it is. 80% of the worlds controllers are either Fanuc or, at least as far as Gcode interpretation, Fanuc clones.
The effective standard is Fanuc21i.

The G-code language, also called RS-274, is a programming language for numerical control. It was developed by the EIA in the early 1960s, and finally standardised by ISO in February 1980 as RS274D / ISO 6983.
That is the official line....but what actually happens is each manufacturer does their own thing. Any good idea gets copied so that brand X may claim the same bragging rights as brand Y.
This process has allowed Fanuc to lead and eventually dominate the industry.

There are many little details that vary from one controller to another. For example in Mach3 this was an acceptable drill routine:

Code:
N00130 G82 X-35.0000 Y13.4500 Z-2.2000 F300   R2.0000  P0.100000
N00140 G82 X-15.1000 Y13.5500 
N00150 G82 X-24.9500 Y23.4000 
N00160 G82 X-25.0000 Y3.4500
However that fails with Mach4 ( and Fanuc21i), and is required to be:

Code:
N00130  G82 X-35.0000 Y13.4500 Z-2.2000 F300   R2.0000  P0.100000
N00140  X-15.1000 Y13.5500 
N00150  X-24.9500 Y23.4000 
N00160  X-25.0000 Y3.4500
It is really only a subtle change, but in Fanuc21i it is a fault to have a G82 drill cycle without a complete list of parameters, whereas Mach3 was slack about that and assumed
the unspecified parameters were unchanged ie modal.

It is little details like this that prevent Gcode from being portable. The NIST document allows newcomers to the industry to hit the ground running as it were, but really is playing catch-up to
Fanuc.

Craig