Posted by surprisetalk 2 days ago
https://reprap.org/wiki/G-code#M98:_Call_Macro.2FSubprogram
but Fanuc and other dialects allow M97 to call a subroutine chained to the end of a program.
Because these folks always want to do the least legal thing allowed by law.
Rant: That type of slider-switch is an inferior usurper of the classic tickbox, that rode in on a wave of touch-screen-ification. Oh, it can be done well, sometimes, but it's just far-too-easy to do it badly.
In this case (useless colors, no other labels, etc.) I think the remaining rule/clue is "Move the dot-nub towards whatever you want." So moving right is indicating you like the "We track you" text, while moving left indicates some kind of disagreement.
_____________________
> It feels intentionally misleading.
The "Accept All" button is worse:
1. It abuses UI conventions of position and color so that it appears like a "Proceed with the configuration shown" button.
2. The label-text is also ambiguous. It could mean "Accept All [of the choices I've made on the screen]" (as you would expect from color and positioning) but it actually means "Reject what is shown and change it."
3. When it does reset all those your choices, it does so in a secretive way by also dismissing the dialog. The user never has any opportunity to see that it just flipped every item to the rightmost position.
One might be a mistake, but all three sins simultaneously is a dark-pattern.
The fact that quines exist means that it must be possible to print a fully self-describing book of this sort, though it's possible that you'd require a more expressive language.
If you had a part of a machine that could save state (say.. turning on a coolant pump..) I wonder how much more of a turing machine you could wrastle into it.
(or you could just cheat and use one of the hundreds of gcode variants that have computational stuff stapled into them like the Fanuc equivalents, but that's sorta dishonest for the exercise)
Grbl, which many of the 3D printer firmwares are based on, does not (and no variables, or loops, or branching).
So suppose I attached an extruder to a Haas mill or something...