Lets hope they get to all Fanuc variables someday, I used to love 3001 for getting run times, when I had to meet a cycle time.
there is a slew of great variables which would be nice to see implemented.
Found variables one of the best ways to keep people from editing your program.
What they don't see they can not change.
I could change positions mcodes, feedrates, tools, spindle speeds just as an example while a program was running by just changing the variable before the next time it called it.
Great for production runs when you can't stop edit and then restart.
Perfect for when your doing an evaluation on new tooling with a salesman
create a variable using 3001 to update your cycle timer then during the run tweak some variables and see how the changes effect overall times.
If nothing else Mach4/Macro B should make better programmers out of the people that write programs.
As a desktop simulator, saves on testing at the machine.
Just that feature alone should sell Mach4 to industry, prove to yourself and your boss your program works before you get that machine time.
This link is a great resource for learning Macro B programming
http://www.machinetoolhelp.com/Applications/macro/macro_variables.html